ルモーリン

要素の個数を数える

投稿:2018-08-27

こんなツイートを見つけて
#!/usr/bin/env perl -w

use utf8;
use strict;
use warnings;

use Data::Dumper;
use Encode::Argv;
use Encode::Locale;

use open IO => ":utf8";

binmode STDIN, ":encoding(console_in)";
binmode STDOUT, ":encoding(console_out)";
binmode STDERR, ":encoding(console_out)";

$| = 1;

my $count = 0;
my %hash;
while (keys %hash < 10) {
	my $i = int rand 10;
	print "乱数: $i\n";
	$hash{$i} = 1;

	print "ハッシュ: @{[sort keys %hash]}\n";
	$count++;
}

print "回数: $count\n";

exit;
WindowsとCentOSで同様に動作することを確認しました。 但し乱数をデータにしていて、実行の度に結果が変わります。
乱数: 3
ハッシュ: 3
乱数: 1
ハッシュ: 1 3
乱数: 0
ハッシュ: 0 1 3
乱数: 0
ハッシュ: 0 1 3
乱数: 7
ハッシュ: 0 1 3 7
乱数: 8
ハッシュ: 0 1 3 7 8
乱数: 4
ハッシュ: 0 1 3 4 7 8
乱数: 5
ハッシュ: 0 1 3 4 5 7 8
乱数: 7
ハッシュ: 0 1 3 4 5 7 8
乱数: 2
ハッシュ: 0 1 2 3 4 5 7 8
乱数: 3
ハッシュ: 0 1 2 3 4 5 7 8
乱数: 4
ハッシュ: 0 1 2 3 4 5 7 8
乱数: 4
ハッシュ: 0 1 2 3 4 5 7 8
乱数: 0
ハッシュ: 0 1 2 3 4 5 7 8
乱数: 0
ハッシュ: 0 1 2 3 4 5 7 8
乱数: 6
ハッシュ: 0 1 2 3 4 5 6 7 8
乱数: 3
ハッシュ: 0 1 2 3 4 5 6 7 8
乱数: 9
ハッシュ: 0 1 2 3 4 5 6 7 8 9
回数: 18