0

男性と女性の比率を数えて将来の赤ちゃんの性別を表示する調査を作成したい場合は、1.05対1です。各カップルが1人の赤ちゃんのみを取得すると仮定します。PHPでそれを行うにはどうすればよいですか?

rand (0,1);乱数(1または0)を生成します。性別を表すことができます。しかし、その数を取得する確率として比率をどのように適用できますか?

比率が非常に近いことはわかっています。関数に比率を適用しても、結果にはまったく影響しないかもしれません。しかし、私は自分自身を教育するためにこれを行っているので、これを行う方法の例を教えてください。

4

2 に答える 2

2

@Michael Berkowskiのコメントによると:

/**
 * Generate random baby gender adjusted by ratio male to female 1.05:1
 *
 * @return
 *   TRUE if male or FALSE if female
 */
function is_random_male() {
    return rand(1, 205) <= 105;
}

echo is_random_male() ? 'male' : 'female';
于 2013-03-14T18:22:18.260 に答える
1

1.05対1は、次と同等です。

  • 男性%=(1 / 2.05)* 100%= 48,78 ..%
  • 女性%=(1.05 / 2.05)* 100%= 51.22 ..%

必要な精度に応じて、次のアルゴリズムを実行できます。

$rnd = rand(0,100);
if ($rnd < 48 ) {
    //male
}
else {
    //female
}

さらに精度が必要な場合:

$rnd = rand(0,10000);
if ($rnd < 4878 ) {
    //male
}
else {
    //female
}
于 2013-03-14T18:19:04.520 に答える