Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
|
|
@ -1,13 +1,26 @@
|
|||
Number.metaClass.getSelfReferentialSequence = {
|
||||
def number = delegate as String; def sequence = []
|
||||
def number = delegate as String; def sequence = []
|
||||
|
||||
while (!sequence.contains(number)) {
|
||||
sequence << number
|
||||
def encoded = new StringBuilder()
|
||||
((number as List).sort().join('').reverse() =~ /(([0-9])\2*)/).each { matcher, text, digit ->
|
||||
encoded.append(text.size()).append(digit)
|
||||
}
|
||||
number = encoded.toString()
|
||||
while (!sequence.contains(number)) {
|
||||
sequence << number
|
||||
def encoded = new StringBuilder()
|
||||
((number as List).sort().join('').reverse() =~ /(([0-9])\2*)/).each { matcher, text, digit ->
|
||||
encoded.append(text.size()).append(digit)
|
||||
}
|
||||
sequence
|
||||
number = encoded.toString()
|
||||
}
|
||||
sequence
|
||||
}
|
||||
|
||||
def maxSeqSize = { List values ->
|
||||
values.inject([seqSize: 0, seeds: []]) { max, n ->
|
||||
if (n % 100000 == 99999) println 'HT'
|
||||
else if (n % 10000 == 9999) print '.'
|
||||
def seqSize = n.selfReferentialSequence.size()
|
||||
switch (seqSize) {
|
||||
case max.seqSize: max.seeds << n
|
||||
case { it < max.seqSize }: return max
|
||||
default: return [seqSize: seqSize, seeds: [n]]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1,7 @@
|
|||
9009.selfReferentialSequence.each { println it }
|
||||
def max = maxSeqSize(0..<1000000)
|
||||
|
||||
println "\nLargest sequence size among seeds < 1,000,000\n"
|
||||
println "Seeds: ${max.seeds}\n"
|
||||
println "Size: ${max.seqSize}\n"
|
||||
println "Sample sequence:"
|
||||
max.seeds[0].selfReferentialSequence.each { println it }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue