September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -3,33 +3,33 @@ var s = [nil, 2]
func ffsr(n) {
while(r.end < n) {
r << s[r.end]+r[-1];
r << s[r.end]+r[-1]
s << [(s[-1]+1 .. r[-1]-1)..., r[-1]+1].grep{ s[-1] < _ }...
}
return n;
return n
}
func ffr(n) { r[ffsr(n)] }
func ffs(n) { s[ffsr(n)] }
printf(" i: R(i) S(i)\n");
printf("==============\n");
10.of { |i|
printf("%3d: %3d %3d\n", i, ffr(i), ffs(i))
}
printf("\nR(40)=%3d S(960)=%3d R(41)=%3d\n", ffr(40), ffs(960), ffr(41));
printf(" i: R(i) S(i)\n")
printf("==============\n")
{ |i|
printf("%3d:  %3d  %3d\n", i, ffr(i), ffs(i))
} << 1..10
printf("\nR(40)=%3d S(960)=%3d R(41)=%3d\n", ffr(40), ffs(960), ffr(41))
var seen = Hash()
40.of { |i| seen{ffr(i)} := 0 ++ }
960.of { |i| seen{ffs(i)} := 0 ++ }
{|i| seen{ffr(i)} := 0 ++ } << 1..40
{|i| seen{ffs(i)} := 0 ++ } << 1..960
if (seen.count {|k,v| (k.to_i >= 1) && (k.to_i <= 1000) && (v == 1) } == 1000) {
say "All occured exactly once.";
say "All occured exactly once."
}
else {
var missed = (1..1000 -> grep { !seen.has_key(_) })
var dupped = seen.grep { |_, v| v > 1 }.keys.sort;
say "These were missed: #{missed}";
say "These were duplicated: #{dupped}";
var missed = { !seen.has_key(_) }.grep(1..1000)
var dupped = seen.grep { |_, v| v > 1 }.keys.sort
say "These were missed: #{missed}"
say "These were duplicated: #{dupped}"
}