Mengacak kata menjadi bentuk yang paling tidak dikenali

13

Tujuan saya adalah menyajikan kata acak kepada pemain yang harus disusun kembali menjadi bentuk aslinya:

OELHL -> HALO

Saya ingin algoritma pengacakan yang mengambil kata tertentu (> 3 atau 4 huruf, mungkin berisi spasi) dan mengubahnya menjadi bentuk yang paling tidak dikenali.

Sementara memindahkan setiap huruf secara acak tentu saja berhasil, saya perhatikan bahwa tidak semua shuffle sama, beberapa lebih mudah dikenali daripada yang lain. Saya memposting pertanyaan ini kalau-kalau ada yang tahu algoritma yang lebih baik (mungkin berdasarkan linguistik) yang ~~ menjamin bentuk yang paling tidak dikenali.

pengguna26471
sumber
3
Mungkin Anda bisa mencoba memastikan tidak ada huruf yang tetap pada posisi semula?
user1306322
3
" bentuk paling tidak dikenali " Bagaimana Anda mendefinisikan itu? Dapat dikenali oleh siapa?
Nicol Bolas
1
@Nicol Bolas adalah bentuk acak-acakan yang membuatnya paling sulit untuk menebak apa kata yang dipesan dengan hanya melihatnya.
user26471
4
@nicolbolas Saya pikir inti dari pertanyaan ini adalah untuk menanyakan apakah telah ada penelitian atau apa pun di sepanjang garis tersebut untuk membentuk praktik umum terbaik untuk masalah semacam itu.
Tetrad

Jawaban:

26

Di tengah-tengah "Cmairbgde Uirenvtisy", sduty tampak aneh , tetapi ia telah melakukan penelitian dengan baik dan benar.

Ini sduty sohws bahwa arpapent lteter szie pyals a rloe. Penggunaan wpckelgraihs bertujuan untuk merusak hubungan antara beberapa rahasia untuk menghapus dan pniot pada saat sebuah wrod adalah undersootd.

Jadi, bagaimana caranya agar tidak ada agoritme? Saya tnihk trehe adalah smoe baisc stspe:

  1. Asisgn a szie vlaue to ecah leettr
  2. Untuk gievn wdro:
    1. Rembmeer the szie vaule untuk ecah leettr posioitn.
    2. Raniomdze surat-surat dengan resrtiksi berikut:
    3. Jangan biarkan frist dan lsat leettr untuk remian di pothir retpecsive
    4. Coba aiovd planicg lertets itno "solt" dari smae szie mereka.

Apa pun yang Anda bisa lakukan, Anda tahu saya tidak punya alasan untuk memulai, silakan saja:

  • Aptemtt untuk maxzmiie the Leveishtenn ditsance antara oiigrnal dan modefiid wrod. Mereka akan memaksimalkan diuficflty untuk reczgnioing wrod. (Pehraps menggunakan Seeuqnce Alimngent )
  • Membalikkan bau pada sikat gigi, dan membuat sikat, tetapi beberapa sapsi membentuk posisi onigiralnya. (Mbyae slhgitly sclambred bacwkards wrod adalah mroe difucilt?)

Perlu terjemahan?


Sementara studi "Cmabrigde Uinervtisy" yang populer kemungkinan adalah tipuan , ada beberapa penelitian tentang topik ini.

Studi ini menunjukkan bahwa ukuran huruf jelas berperan. Penggunaan wickelgraphs berupaya menggambarkan hubungan antara set huruf untuk memahami titik di mana suatu kata dipahami.

Lalu bagaimana cara mengembangkan ini menjadi sebuah algoritma? Saya pikir ada beberapa langkah dasar:

  1. Tetapkan nilai ukuran untuk setiap huruf
  2. Untuk kata tertentu:
    1. Ingat nilai ukuran untuk setiap posisi huruf.
    2. Acak surat-surat dengan batasan berikut:
    3. Jangan biarkan huruf pertama dan terakhir tetap di posisi masing-masing
    4. Coba hindari menempatkan huruf ke dalam "slot" dengan ukuran yang sama.

Ada strategi lain yang dapat Anda terapkan, meskipun saya tidak memiliki penelitian untuk mendukung berikut ini, hanya pikiran saya:

  • Mencoba untuk memaksimalkan jarak Levenshtein antara kata asli dan kata yang dimodifikasi. Ini bisa memaksimalkan kesulitan untuk mengenali kata. (Mungkin menggunakan Sequence Alignment )
  • Balikkan urutan huruf sebelum berebut, lalu pindahkan setiap huruf hanya beberapa spasi dari posisi semula. (Mungkin kata mundur sedikit acak lebih sulit?)
MichaelHouse
sumber
5
Saya akan memberi +1 hingga saya melihat bahwa Anda memberikan terjemahan. ;)
Trevor Powell
1
Penerapan gaya terbaik untuk jawaban PERNAH! :)
Tim Holt
Aku tidak pernah terlalu keras tahun ini.
Blue Wizard
2

Ini bukan solusi universal tetapi sering jika ada kata yang merupakan anagram daripada perebutan ini membuat menemukan kata asli lebih sulit. Begitu otak Anda terkunci pada kata aslinya, sulit untuk mengeluarkan kata itu dari kepala Anda.

yaitu dekrit -> surut mungkin lebih sulit daripada ecdeer -> surut.

Satu poin lebih lanjut (meskipun saya tidak yakin bagaimana menerapkannya) adalah untuk menghapus pasangan huruf yang umum. Jika sebuah anagram memiliki 'q' dan 'u' dalam jawabannya, Anda ingin memisahkan mereka dalam pertanyaan. contoh lain mungkin termasuk 'th', 'ing' dll. Sebaliknya jika huruf 't' dan 'h' ada dalam jawaban tetapi tidak bersebelahan satu sama lain, menempatkannya bersama dalam pertanyaan membuatnya lebih sulit; otak Anda secara otomatis memikirkan kata-kata dengan huruf 'th' di dalamnya.

timcdlucas
sumber