인식 할 수없는 형태로 단어를 스크램블


13

내 목표는 플레이어에게 원래 단어로 다시 정렬해야하는 스크램블 단어를 제시하는 것입니다.

OELHL-> 안녕하세요

주어진 단어 (> 3 또는 4 자, 공백을 포함 할 수 있음)를 사용하여 인식 할 수없는 형태로 바꾸는 스크램블링 알고리즘을 원합니다.

모든 문자를 무작위로 움직여 확실히 작동하지만 모든 셔플이 같지는 않지만 일부는 다른 것보다 더 잘 인식됩니다. 누군가가 ~ 인식 할 수있는 최소한의 형태를 보장하는 더 나은 알고리즘 (언어학에 기초 할 수도 있음)을 알고있는 경우이 질문을 게시하고 있습니다.


3
편지가 원래 위치에 머 무르지 않도록 할 수 있습니까?
user1306322


3
" 가장 알아볼 수없는 형태 "어떻게 정의합니까? 누구에게 알아볼 수 있습니까?
Nicol Bolas

1
@ 니콜 볼 라스 (Nicol Bolas)는 순서가 잘 맞는 단어를보고 추측하기가 가장 어려운 셔플 형식입니다.
user26471

4
@ nicolbolas 나는 문제의 요점은 그러한 종류의 문제에 대한 일반적인 모범 사례를 형성하기 위해 그 라인을 따라 어떤 연구가 있었는지 물어 보는 것입니다.
Tetrad

답변:


26

"Cmairbgde Uirenvtisy"의 sduty는 다행스럽게도 haox였으며 , 그 결과는 끔찍한 일이 아니었다.

Tihs sduty sohws taht를 arpapent lteter szie pyals rloe. wpckelgraihs attmepts를 사용 하여 letrets의 무차별 무리가 언로드되지 않은 상태에서 피 니트가 관계없이 잘 풀리지 않는 관계를 맺었습니다.

그렇다면 어떻게 헛소리를 흘리는가? 나는 smoe baisc stspe입니다.

  1. ecah leettr에 szie vlaue를 Asisgn
  2. gievn wdro의 경우 :
    1. ecah leettr posioitn에 대한 szie vaule을 기억하십시오.
    2. 다음의 낭독에 대한 편지를 Raniomdze :
    3. tehir retpecsive potision에서 프리미어와 lsat leettr를 remian에게 aollw하지 마십시오
    4. aievd planicg lertets iter 그들의 smae szie의 "솔트"를 lertets.

Tehre는 당신이 empeloy 할 수있는 otehr sttaregies입니다, thhough 나는 foollwing을 bcak하는 raseerch가 없습니다.

  • oiigrnal과 modefiid wrod 사이의 Leveishtenn 거리를 maxzmiie로 지정하십시오. Tihs colud는 막대를 reczgnioing에 대한 diuficflty를 maxiimze. (Pehraps는 Seeuqnce Alimngent를 사용합니다 )
  • ltteers berofe scramilbng의 방향을 바꾸면 몇 가지 sapces가 초기 위치에서 형성됩니다. (Mbyae slhgitly sclambred bacwkards wrod는 mroe diffucilt입니까?)

번역이 필요하십니까?


인기있는 "Cmabrigde Uinervtisy"연구는 사기가능성높지만 이 주제에 대한 연구가있었습니다.

이 연구 는 명백한 글자 크기가 역할을한다는 것을 보여줍니다. wickelgraphs 의 사용은 단어가 이해되는 지점을 이해하기 위해 문자 집합 사이의 관계를 설명하려고 시도합니다.

그렇다면 이것을 알고리즘으로 개발하는 방법은 무엇입니까? 몇 가지 기본 단계가 있다고 생각합니다.

  1. 각 글자에 크기 값을 할당하십시오
  2. 주어진 단어에 대해 :
    1. 각 글자 위치의 크기 값을 기억하십시오.
    2. 다음 제한 사항으로 글자를 무작위로 만드십시오.
    3. 첫 글자와 마지막 글자를 각자의 위치에 두지 마십시오
    4. 같은 크기의 "슬롯"에 글자를 넣지 마십시오.

당신이 사용할 수있는 다른 전략들이 있지만, 다음 생각을 뒷받침 할 연구는 없지만 내 생각 만 있습니다 :

  • 원래 단어와 수정 된 단어 사이 의 Levenshtein 거리 를 최대화하십시오 . 이로 인해 단어를 인식하기가 어려울 수 있습니다. (아마도 시퀀스 정렬 사용 )
  • 스크램블링하기 전에 문자 순서를 반대로 한 다음 각 문자를 원래 위치에서 몇 칸 이동하십시오. (어쩌면 뒤로 약간 뒤섞인 단어가 더 어려울 수 있습니까?)

5
번역을 제공 할 때까지 +1하려고했습니다. ;)
트레버 파월

1
이제까지 답변에 스타일의 최고의 응용 프로그램! :)
Tim Holt

올해도 그렇게 힘들지 않았습니다.
블루 마법사

2

이것은 보편적 인 해결책은 아니지만 종종 스크램블이 아닌 아나그램 인 단어가 있으면 원래 단어를 찾기가 더 어려워집니다. 일단 당신의 두뇌가 원래 단어에 고정되면 그 단어를 머리에서 꺼내기가 어렵습니다.

즉, 법령-> 후퇴는 ecdeer-> 후퇴보다 어려울 수 있습니다.

한 가지 더 중요한 점은 (어떻게 구현 해야할지 모르겠지만) 일반적인 문자 쌍을 제거하는 것입니다. 아나그램에 대답에 'q'와 'u'가 있으면 질문에서 이들을 분리하려고합니다. 다른 예로는 'th', 'ing'등이 포함될 수 있습니다. 반대로 't'와 'h'문자가 답에 있지만 서로 옆에 있지 않은 경우 질문에 함께 넣으면 어려워집니다. 당신의 두뇌는 자동으로 'th'가 포함 된 단어를 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.