Saya yakin sebagian besar, jika tidak semua, dari Anda telah menemukan ini di beberapa titik:
Sehubungan dengan penelitian di Cmabrigde Uinervtisy, ia tidak dapat berubah dalam waktu dekat dengan yang lain, yang lebih awal dan lebih baik berada di rghit pclae. Rets dapat menjadi toatl mses dan Anda dapat melihat itu hanya dengan porbelm. Ini adalah karena dewa-dewa hnamn mnid tidak dibagikan oleh istlef, tetapi lebih sebagai wlohe.
Buat program yang memasukkan sejumlah teks. Untuk tujuan pengujian, gunakan versi teks di atas yang tidak diacak, ditemukan di bawah.
Program kemudian harus secara acak mengubah huruf setiap kata dengan panjang 4 huruf atau lebih, kecuali huruf pertama dan terakhir dari setiap kata.
Semua pemformatan lain harus tetap sama (huruf besar dan tanda baca, dll.).
Teks pengujian:
Menurut seorang peneliti di Universitas Cambridge, tidak masalah bagaimana urutan huruf dalam sebuah kata, satu-satunya hal yang penting adalah bahwa huruf pertama dan terakhir berada di tempat yang tepat. Selebihnya bisa berantakan total dan Anda masih bisa membacanya tanpa masalah. Ini karena pikiran manusia tidak membaca setiap huruf dengan sendirinya tetapi kata secara keseluruhan.
Seperti biasa, ini adalah kode-golf. Kode terpendek menang.
rscheearch
teks sampel Anda.don't
tetap berada di posisi yang sama? Spesifikasinya mengatakanAll other formatting must remain the same (capitalization and punctuation, etc.).
tetapi saya tidak yakin bagaimana cara kerjanya di sini ...Jawaban:
Ruby -
5048 karakter, plus-p
parameter baris perintah.Terima kasih @rimo untuk -2 char.
Uji
sumber
\K
untuk pernyataan selebar nol lebar? Juga, pengelompokan terdalam tidak perlu, menggunakan$&
bukan$1
.$&
tipnya :)codegolf
skrip[*$&.chars]
=>$&.chars
, menghemat 3 byte.Python, 118
Python sangat canggung untuk hal-hal seperti ini!
Bonus
Saya mencoba beberapa hal lain yang saya pikir akan pintar, tetapi Anda harus mengimpor segala macam hal, dan banyak metode tidak memiliki nilai pengembalian, tetapi perlu dipanggil secara terpisah sebagai pernyataannya sendiri. Yang terburuk adalah ketika Anda perlu mengubah string ke daftar dan kemudian
join
memasukkannya kembali ke string.Bagaimanapun, berikut adalah beberapa hal yang saya coba:
Regex! Permutasi! Anda tidak dapat mengocok partisi daftar secara langsung danshuffle
kembaliNone
, yay!sumber
PHP 84 byte
Menggunakan regex untuk menangkap kata yang setidaknya
4panjangnya 3 huruf † , dan mengocok karakter dalam. Kode ini dapat menangani input dengan banyak baris juga.Jika hanya satu jalur input yang diperlukan (seperti pada contoh), ini dapat dikurangi menjadi 68 byte
† Hanya ada satu huruf di tengah, jadi tidak masalah jika kamu mengocoknya.
sumber
J (48)
Penjelasan:
1!:1[3
: baca semua input dari stdinrxapply
: menerapkan fungsi yang diberikan ke bagian input yang cocok dengan regex({~?~@#)
: kereta kata kerja yang mengocok inputnya:#
menghitung panjangnya, ini diterapkan pada kedua sisi untuk?
memberikan N angka yang berbeda dari 0 hingga N,{
lalu memilih elemen pada indeks tersebut dari array input.('\w(\w+)\w';,1)
: gunakan regex itu tetapi hanya gunakan nilai dari grup pertama[1!:2&4
: kirim keluaran yang belum diformat ke stdout''[
: menekan output yang diformat. Hal ini diperlukan karena jika tidak, hanya output bagian dari output yang sesuai pada jalur terminal dan kemudian berakhir dengan...
.sumber
Retina , 10 byte
Cobalah online!
Hei, tantangan lama ini dibuat untuk Retina baru!
Penjelasan
\B\w+\B
cocok dengan kelompok huruf antara non-batas, yaitu kelompok huruf yang tidak memulai atau mengakhiri kata. Karena regex serakah, ini akan cocok dengan semua huruf kata kecuali yang pertama dan yang terakhir.V
adalah tahap "terbalik", yang membalik urutan karakter di setiap pertandingan regex. Dengan?
opsi itu malah mengacak mereka.sumber
APL 107
Sayangnya penerjemah APL saya tidak mendukung regex jadi di sini adalah versi rumah digulung di mana teks yang akan diacak disimpan dalam variabel t:
Pada dasarnya kode mempartisi teks menjadi kata-kata berdasarkan huruf-huruf alfabet saja dan kemudian menjadi huruf-huruf antara huruf pertama dan terakhir dari kata-kata itu. Huruf-huruf ini kemudian diacak dan seluruh rangkaian karakter disusun kembali.
sumber
APL,
5849Saya percaya ini bekerja di IBM APL2 (Saya tidak punya IBM APL)
Jika tidak, maka di Dyalog APL, tambahkan ke depan:
yang menambahkan 6 karakter
Ini mengasumsikan satu-satunya karakter non-kata adalah spasi, koma, dan titik.
sumber
VBA, 351
373/409Metode Alternatif (lebih besar):
Kedua metode ini mengubah nilai variabel yang diteruskan ke
Sub
. yaituakan menampilkan sesuatu seperti ini:
Juga, ini tidak mengacak tanda baca tengah kata, jadi ini mungkin tidak sesuai dengan spesifikasi 100%.
sumber
APL NARS 172 karakter
13 + 17 + 18 + 44 + 41 + 8 + 17 + 5 + 9 = 172; Fungsi ini g () memiliki input sebagai string; memiliki output sebagai string. Saya menambahkan perintah input karena saya tidak tahu bagaimana memasukkan \ 'dalam string yang dikutip. Berkomentar
hasil
sumber
PHP 7.1, tidak bersaing, 80 byte
mengambil input dari argumen baris perintah. Jalankan dengan
-nr
. (jelas akan gagal pada tanda baca)sumber
PHP, 94 +1 byte
+1 untuk
-R
benderaMasukan pipa melalui
php -nR '<code>'
.Catatan:
preg_replace_callback
datang ke PHP dalam 4.0.5; penutupan diperkenalkan di php 5.3;jadi ini membutuhkan PHP 5.3 atau yang lebih baru.
Sayangnya, pertandingan selalu dikirim sebagai array, bahkan jika tidak ada sub pola,
jadi saya tidak bisa hanya menggunakan
str_shuffle
panggilan balik, yang akan menghemat 29 byte.sumber
JavaScript,
7667 byteterima kasih kepada Arnauld untuk -9 byte.
Cobalah online!
Tidak disatukan
sumber
/\B\w+\B/g
. (Tapi untuk hadiahnya, perhatikan bahwa panjang kode tidak penting. )R, 179
Menggunakan fungsi yang saya tulis untuk huruf acak dalam masalah kata :
Memasukkan:
Larutan:
Hasil:
sumber
Pyth, 23 byte
Non-bersaing karena Pyth dibuat setelah tantangan ini diposting.
Cobalah online
sumber
Japt , 32 byte
Cobalah online!
sumber
Java,
1557834 byte Berkat @ JoKing untuk tip.Agak terlambat untuk kompetisi. Lupa bahwa saya sudah mulai dengan masalah ini.
Golf
Non-golf
sumber
Sidef ,
8985 byteBlokir (panggilan anonim):
Output, ketika digunakan seperti
{ ... }('..')
:Agak tidak serigala
sumber