Xáo trộn từ thành dạng ít nhận ra nhất


13

Mục tiêu của tôi là trình bày cho người chơi một từ được xáo trộn nên được sắp xếp lại thành dạng ban đầu:

OELHL -> HELLO

Tôi muốn một thuật toán xáo trộn lấy bất kỳ từ nào (> 3or4 chữ cái, có thể chứa dấu cách) và biến nó thành dạng ít nhận dạng nhất.

Trong khi di chuyển ngẫu nhiên mọi chữ cái xung quanh chắc chắn hoạt động, tôi nhận thấy rằng không phải tất cả các xáo trộn đều bằng nhau, một số dễ nhận ra hơn những chữ cái khác. Tôi đang đăng câu hỏi này trong trường hợp ai đó biết về một thuật toán tốt hơn (có thể dựa trên ngôn ngữ học) mà ~ ~ đảm bảo hình thức ít nhận ra nhất.


3
Có lẽ bạn có thể thử đảm bảo không có chữ cái nào ở vị trí ban đầu của nó?
dùng1306322


3
" hình thức ít nhận biết nhất " Làm thế nào để bạn xác định điều đó? Nhận ra ai?
Nicol Bolas

1
@Nicol Bolas hình thức xáo trộn của nó làm cho khó đoán nhất từ ​​được đặt hàng là gì khi chỉ nhìn vào nó.
dùng26471

4
@nicolbolas Tôi nghĩ rằng vấn đề của câu hỏi là hỏi liệu đã có nghiên cứu hay bất cứ điều gì dọc theo những dòng đó để hình thành các thực tiễn tốt nhất chung cho loại vấn đề đó.
Tết

Câu trả lời:


26

Wihle plpuoar "Cmairbgde Uirenvtisy" sduty là một cách đáng kinh ngạc , trehe đã được smoe resaerch itno tihs tpoic.

Tihs sduty sohws taht arpapent lteter szie pyals a rloe. Việc sử dụng wpckelgraihs attmepts để debcrise các Stes mối quan hệ beewten của letrets để undtrseand các pniot tại wihch một wrod là undersootd.

Vì vậy, làm thế nào để dlveeop tihs itno một aglorithm? Tôi tnihk trehe là smoe baisc stspe:

  1. Asisgn a szie vlaue to ecah leettr
  2. Đối với một wdro gievn:
    1. Rembmeer các szie vaule cho ecah leettr posioitn.
    2. Raniomdze các chữ cái với các văn bản folwoling:
    3. Đừng làm phiền người đầu tiên và lsat leettr để remian trong poteh retpecsive tehir
    4. Cố gắng aiovd planicg lertets itno "solt" của thier smae szie.

Tere là những sttaregies otehr bạn có thể emlpoy, thuogh I hvae no raseerch để bcak lên foollwing, jsut my tsoughth:

  • Aptemtt để maxzmiie sự thay đổi Leveishtenn giữa wrod oiigrnal và modefiid. Tihs colud maxiimze diuficflty cho reczgnioing wrod. (Pehraps sử dụng Seeuqnce Alimngent )
  • Đảo ngược odrer của ltteer berofe scramilbng, tehn mvoe ecah ltteer jsut một vài sapces tạo thành vị trí onigirus của nó. (Mbyae slhgitly sclambred wwwards wrod is mroe diffucilt?)

Cần một bản dịch?


Trong khi nghiên cứu "Cmabrigde Uinervtisy" nổi tiếng có khả năng là một trò lừa bịp , đã có một số nghiên cứu về chủ đề này.

Nghiên cứu này cho thấy kích thước chữ rõ ràng đóng một vai trò. Việc sử dụng wickelgraphs cố gắng mô tả mối quan hệ giữa các bộ chữ cái để hiểu điểm mà từ đó được hiểu.

Vậy làm thế nào để phát triển điều này thành một thuật toán? Tôi nghĩ có một số bước cơ bản:

  1. Gán một giá trị kích thước cho mỗi chữ cái
  2. Đối với một từ nhất định:
    1. Ghi nhớ giá trị kích thước cho từng vị trí chữ cái.
    2. Chọn ngẫu nhiên các chữ cái với các hạn chế sau:
    3. Không cho phép chữ cái đầu tiên và cuối cùng ở vị trí tương ứng của họ
    4. Cố gắng tránh đặt các chữ cái vào "khe" có cùng kích thước.

Có nhiều chiến lược khác bạn có thể sử dụng, mặc dù tôi không có nghiên cứu để sao lưu những điều sau đây, chỉ là suy nghĩ của tôi:

  • Cố gắng tối đa hóa khoảng cách Levenshtein giữa từ gốc và từ được sửa đổi. Điều này có thể tối đa hóa khó khăn để nhận ra từ. (Có lẽ sử dụng Sắp xếp thứ tự )
  • Đảo ngược thứ tự của các chữ cái trước khi xáo trộn, sau đó di chuyển mỗi chữ cái chỉ một vài khoảng cách từ vị trí ban đầu của nó. (Có lẽ hơi lộn xộn từ ngược là khó khăn hơn?)

5
Tôi sẽ lên +1 cho đến khi tôi thấy rằng bạn cung cấp bản dịch. ;)
Trevor Powell

1
Ứng dụng tốt nhất của một phong cách để trả lời EVER! :)
Tim Holt

Tôi chưa bao giờ lol quá khó khăn trong năm nay.
Phù thủy xanh

2

Đây không phải là một giải pháp phổ quát nhưng thường nếu có một từ là đảo chữ thay vì tranh giành thì điều này làm cho việc tìm từ gốc khó hơn. Một khi bộ não của bạn bị khóa với từ gốc, thật khó để lấy từ đó ra khỏi đầu bạn.

tức là nghị định -> recede có thể khó hơn ecdeer -> recede.

Một điểm nữa (mặc dù tôi không chắc cách triển khai nó) là xóa các cặp chữ cái phổ biến. Nếu câu trả lời có 'q' và 'u' trong câu trả lời, bạn muốn tách chúng trong câu hỏi. các ví dụ khác có thể bao gồm 'th', 'ing', v.v ... Ngược lại, nếu các chữ cái 't' và 'h' nằm trong câu trả lời nhưng không nằm cạnh nhau, việc đặt chúng lại với nhau trong câu hỏi làm cho nó khó hơn; bộ não của bạn sẽ tự động nghĩ ra những từ có 'th' trong đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.