June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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} } ... * }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue