Jumble algorithm: Difference between revisions
m →Computerized solution: clean up spacing around punctuation, replaced: , → , using AWB |
Removing stale merge proposal from 2015; no case made, no support over 2 years; clear justification for separate pages; see Talk:Jumble algorithm |
||
Line 4: | Line 4: | ||
{{unreferenced|date=June 2015}} |
{{unreferenced|date=June 2015}} |
||
}} |
}} |
||
{{merge to|Jumble|discuss=Talk:Jumble#Proposed merge with Jumble algorithm|date=June 2015}} |
|||
Each clue in a [[Jumble]] word puzzle is a word that has been “jumbled” by permuting the letters of each word to make an [[anagram]]. A dictionary of such anagrams may be used to solve puzzles or verify that a jumbled word is unique when creating puzzles. |
Each clue in a [[Jumble]] word puzzle is a word that has been “jumbled” by permuting the letters of each word to make an [[anagram]]. A dictionary of such anagrams may be used to solve puzzles or verify that a jumbled word is unique when creating puzzles. |
Revision as of 23:22, 27 September 2017
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Each clue in a Jumble word puzzle is a word that has been “jumbled” by permuting the letters of each word to make an anagram. A dictionary of such anagrams may be used to solve puzzles or verify that a jumbled word is unique when creating puzzles.
Computerized solution
Algorithms have been designed to solve Jumbles, using a dictionary. Common algorithms work by printing all words that can be formed from a set of letters. The solver then chooses the right word.
First algorithm:
- Begin
- Input: J, all the jumbled letters that form an unknown W word(s)
- Sort the letters of J in alphabetical order, preserving duplicates
- Look up sorted letters in a hash table, initialised with a dictionary, that maps a sorted set of letters to unscrambled words
- Print the set of words, which is W
- End
Second algorithm:
- Begin
- Input: J, all the jumbled letters that form an unknown W word(s)
- Frame a word list Y with all permutations of J
- For each word in Y check if the word is existing in the dictionary
- If a match is found then collect it in word list W
- Print the words in W
- End
Algorithm to find the permutations of J:
- Begin
- Initialize a string with first character of J denoted by J(1)
- Add the second character of J denoted by J(2) on either side of J(1) to get two strings
J(1)J(2)
J(2)J(1)
- Add the third character of J denoted by J(3) on either side and in between the above 2 strings to get 6 strings
J(1)J(2)J(3)
J(1)J(3)J(2)
J(3)J(1)J(2)
J(2)J(1)J(3)
J(2)J(3)J(1)
J(3)J(2)J(1)
- In the same way add J(4) to each of the above strings in either sides and between two characters to get 24 strings
- Continue this until all the characters are completed
Though the algorithm looks complex it is easy to program.
Douglas Hofstadter developed a program called Jumbo that tries to solve Jumble problems as a human mind would. The program doesn't rely on a dictionary and doesn't try to find real English words, but rather words that could be English, exploiting a database of plausibilities for various combinations of letters. Letters are combined non-deterministically, following a strategy inspired by chemical reactions and free associations.