文字列の中にいくつかの文字が出現する頻度を記録しましたが、今では(ほぼ)同じ文字の文字列を持つランダムな文字列を作りたいと思います。私はこれを行うには、次のPerlコードを使用しています。Perlで与えられた確率で文字を描く
my $random_string = "";
while(length($random_string) < $length)
{
my $probabilities =
{
A => 0.2790114613,
B => 0.1880372493,
C => 0.2285100287,
D => 0.3044412607,
};
my $test = 0;
$test += $probabilities->{ A };
if($rand < $test)
{
$sequence .= "A";
next;
}
$test += $probabilities->{ B };
if($rand < $test)
{
$sequence .= "B";
next;
}
$test += $probabilities->{ C };
if($rand < $test)
{
$sequence .= "C";
next;
}
$sequence .= "D";
}
これを行うには良い方法がありますか?どのように多くの手紙が考慮されるべきかわからない場合はどうすれば対応できますか?すべての文字の確率の合計が1であると安全に仮定できます。