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 = Dict{Vector{Int}, Set{String}}()
anadict = counter(numreps)
for i in eachindex(numstrings)
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(p -> length(p[2]) > 1, anadict))
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)