Talk:Word wheel

From Rosetta Code
Revision as of 10:20, 5 July 2020 by rosettacode>Paddy3118 (→‎Algorithms: 12x larger dictionary)

Algorithms

It seemed logical to me to have the Python entry check each word of the dictionary against the grid constraints. The Julia entry seems to generate all possible conforming strings from the grid characters then checks if they are in the dictionary.
Nice. --Paddy3118 (talk) 15:30, 4 July 2020 (UTC)

It seems a waste of memory and CPU time to generate all possible conforming strings instead of writing some simple filters that validates the words against the Rosetta Code task and grid (word wheel) constraints.   The REXX solution consumes almost all of the CPU time in just reading in the dictionary.   The filters that I used for the REXX programming solution eliminate over half of the   25,105   words in the UNIXDICT file,   about  1/4  of the time used for the filtering was used in the detecting of duplicate words   (there are none, however).   A very small fraction of that is used to validate that each letter (by count) is represented in the grid.   I wonder what the CPU consumption would be if the number of words (entries) in the dictionary were a magnitude larger.   My "personal" dictionary that I built has over   915,000   words in it.     -- Gerard Schildberger (talk) 21:34, 4 July 2020 (UTC)
Hi Gerald, no waste of memory in the Julia case as nested loops are used to generate word candidates one-at-a-time and then quickly checked if they are in the set of dictionary words. Probably hundreds of thousands of lookups which is OK for todays laptops. As for dictionary size, the task specifies a particular dictionary to use; going so far outside of that may interest, but is outside the task boundary.
Cheers, --Paddy3118 (talk) 03:32, 5 July 2020 (UTC)
Just ran the larger dictionary its 12x the size of the standard dictionary and runs in 15x the time using the Python code. (There is a lot of "cruft" padding out that larger dictionary from the look of the first 100 words). --Paddy3118 (talk) 10:18, 5 July 2020 (UTC)