June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,34 +1,20 @@
text
next(text s, integer show)
next(text s)
{
integer l;
record v;
integer c, e, l;
index v;
data d;
text u;
l = length(s);
l = ~s;
while (l) {
integer e;
l -= 1;
e = 0;
u = insert("", 0, s[l]);
r_j_integer(e, v, u);
r_f_integer(v, u, e + 1);
v[-s[l -= 1]] += 1;
}
if (r_last(v, u)) {
do {
b_plan(d, v[u], u);
} while (rsk_less(v, u, u));
for (c, e in v) {
b_form(d, "%d%c", e, -c);
}
if (show) {
o_text(b_string(d));
o_newline();
}
return b_string(d);
return d;
}
integer
@ -40,17 +26,12 @@ depth(text s, integer i, record r)
r_j_integer(d, r, s);
if (d <= 0) {
i += 1;
if (d) {
d += i;
} else {
d = -i;
}
r_f_integer(r, s, d);
i = depth(next(s, 0), i, r);
d += d ? i : -i;
r[s] = d;
i = depth(next(s), i, r);
d = r[s];
if (d <= 0) {
d = i + 1;
r_r_integer(r, s, d);
r[s] = d = i + 1;
}
}
@ -78,19 +59,15 @@ main(void)
}
}
o_text(cat3("longest length is ", itoa(d), "\n"));
while (l_length(l)) {
o_("longest length is ", d, "\n");
while (l_o_integer(i, l, 0)) {
text s;
o_newline();
r_clear(r);
lf_e_integer(i, l);
o_integer(i);
o_newline();
o_("\n", i, "\n");
e = d - 1;
s = itoa(i);
while (e) {
s = next(s, 1);
o_(s = next(s), "\n");
e -= 1;
}
}

View file

@ -7,30 +7,29 @@ for 1 .. 1000000 -> $m {
my $j = join '', $m.comb.sort;
next if %seen{$j}:exists; # already tested a permutation
%seen{$j} = '';
my @seq := converging($m);
my @seq = converging($m);
my %elems;
my $count;
for @seq[] -> $value { last if ++%elems{$value} == 2; $count++; };
if $longest == $count {
@list.push($m);
say "\b" x 20, "$count, $m"; # monitor progress
}
elsif $longest < $count {
$longest = $count;
@list = $m;
say "\b" x 20, "$count, $m"; # monitor progress
print "\b" x 20, "$count, $m"; # monitor progress
}
};
for @list -> $m {
say "Seed Value(s): ", my $seeds = ~permutations($m).unique.grep( { .substr(0,1) != 0 } );
my @seq := converging($m);
say "\nSeed Value(s): ", my $seeds = ~permutations($m).unique.grep( { .substr(0,1) != 0 } );
my @seq = converging($m);
my %elems;
my $count;
for @seq[] -> $value { last if ++%elems{$value} == 2; $count++; };
say "\nIterations: ", $count;
say "\nSequence: (Only one shown per permutation group.)";
.say for @seq[^$count], "\n";
.say for |@seq[^$count], "\n";
}
sub converging ($seed) { return $seed, -> $l { join '', map { $_.value.elems~$_.key }, $l.comb.classify({$^b}).sort: {-$^c.key} } ... * }