September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
|
|
@ -0,0 +1,61 @@
|
|||
const seen = Dict{Vector{Char}, Vector{Char}}()
|
||||
|
||||
function findnextterm(prevterm)
|
||||
counts = Dict{Char, Int}()
|
||||
reversed = Vector{Char}()
|
||||
for c in prevterm
|
||||
if !haskey(counts, c)
|
||||
counts[c] = 0
|
||||
end
|
||||
counts[c] += 1
|
||||
end
|
||||
for c in sort(collect(keys(counts)))
|
||||
if counts[c] > 0
|
||||
push!(reversed, c)
|
||||
if counts[c] == 10
|
||||
push!(reversed, '0'); push!(reversed, '1')
|
||||
else
|
||||
push!(reversed, Char(UInt8(counts[c]) + UInt8('0')))
|
||||
end
|
||||
end
|
||||
end
|
||||
reverse(reversed)
|
||||
end
|
||||
|
||||
function findsequence(seedterm)
|
||||
term = seedterm
|
||||
sequence = Vector{Vector{Char}}()
|
||||
while !(term in sequence)
|
||||
push!(sequence, term)
|
||||
if !haskey(seen, term)
|
||||
nextterm = findnextterm(term)
|
||||
seen[term] = nextterm
|
||||
end
|
||||
term = seen[term]
|
||||
end
|
||||
return sequence
|
||||
end
|
||||
|
||||
function selfseq(maxseed)
|
||||
maxseqlen = -1
|
||||
maxsequences = Vector{Pair{Int, Vector{Char}}}()
|
||||
for i in 1:maxseed
|
||||
seq = findsequence([s[1] for s in split(string(i), "")])
|
||||
seqlen = length(seq)
|
||||
if seqlen > maxseqlen
|
||||
maxsequences = [Pair(i, seq)]
|
||||
maxseqlen = seqlen
|
||||
elseif seqlen == maxseqlen
|
||||
push!(maxsequences, Pair(i, seq))
|
||||
end
|
||||
end
|
||||
println("The longest sequence length is $maxseqlen.")
|
||||
for p in maxsequences
|
||||
println("\n Seed: $(p[1])")
|
||||
for seq in p[2]
|
||||
println(" ", join(seq, ""))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
selfseq(1000000)
|
||||
Loading…
Add table
Add a link
Reference in a new issue