English cardinal anagrams: Difference between revisions
Content added Content deleted
m (→{{header|Julia}}: use a counter) |
|||
Line 65: | Line 65: | ||
=={{header|Julia}}== |
=={{header|Julia}}== |
||
<syntaxhighlight lang="julia">import SpelledOut: spelled_out |
<syntaxhighlight lang="julia">import SpelledOut: spelled_out |
||
import Counters: counter |
|||
languages = Dict("English" => :en, "Spanish" => :es, "Portuguese" => :pt_BR) |
languages = Dict("English" => :en, "Spanish" => :es, "Portuguese" => :pt_BR) |
||
Line 81: | Line 82: | ||
numstrings = map(n -> spelled_out(n, lang=languages[lang]), 0:maxrange) |
numstrings = map(n -> spelled_out(n, lang=languages[lang]), 0:maxrange) |
||
numreps = map(anarep, numstrings) |
numreps = map(anarep, numstrings) |
||
anadict = |
anadict = counter(numreps) |
||
for i in |
counts = [anadict[numreps[i]] for i in 1:maxrange] |
||
if haskey(anadict, numreps[i]) |
|||
push!(anadict[numreps[i]], numstrings[i]) |
|||
else |
|||
anadict[numreps[i]] = Set{String}([numstrings[i]]) |
|||
end |
|||
end |
|||
counts = [length(anadict[numreps[i]]) for i in 1:maxrange] |
|||
if showfirst30 |
if showfirst30 |
||
println("First 30 $lang cardinal anagrams:") |
println("First 30 $lang cardinal anagrams:") |
||
Line 102: | Line 96: | ||
end |
end |
||
print("\nCount of $lang cardinal anagrams up to $maxrange: ") |
print("\nCount of $lang cardinal anagrams up to $maxrange: ") |
||
println(count( |
println(count(values(anadict) .> 1)) |
||
println("\nLargest group(s) of $lang cardinal anagrams up to $maxrange:") |
println("\nLargest group(s) of $lang cardinal anagrams up to $maxrange:") |
||
maxcount = maximum(counts) |
maxcount = maximum(counts) |