Markov chain text generator: Difference between revisions

Content added Content deleted
m (→‎{{header|Sidef}}: fixed an off-by-one error)
m (→‎{{header|Perl}}: fixed an off-by-one error)
Line 857: Line 857:
my ($n, @words) = @_;
my ($n, @words) = @_;
my %dict;
my %dict;
for my $i (0 .. @words - $n) {
for my $i (0 .. $#words - $n) {
my @prefix = @words[$i .. $i+$n-1];
my @prefix = @words[$i .. $i+$n-1];
push @{$dict{join ' ', @prefix}}, $words[$i+$n];
push @{$dict{join ' ', @prefix}}, $words[$i+$n];
Line 873: Line 873:


my @words = split ' ', $text;
my @words = split ' ', $text;
push @words, @words[0..$n-1];
my %dict = build_dict($n, @words);
my %dict = build_dict($n, @words);
my @rotor = @words[0 .. $n - 1];
my @rotor = @words[0..$n-1];
my @chain = @rotor;
my @chain = @rotor;