PHP での加重乱数生成
この質問では、特定の範囲に異なる確率を割り当てながら乱数を生成するという課題について説明します。 PHP では、mt_rand() 関数はランダムな整数を生成する方法を提供しますが、重み付けされた結果は許可されません。
この制限を克服するには、重み付けされた確率の概念を使用できます。このアプローチには、キーが目的の結果を表し、値がそれぞれの重みを表す連想配列の作成が含まれます。すべての結果の重みの合計は、可能な最大の重みに達する必要があります。
指定された重みに基づいてランダムな結果を生成するには、mt_rand を使用して 1 から合計の重みまでのランダムな値を計算する必要があります。 () 関数。次に、重み付けされた配列を反復処理し、ランダムな値から各結果の重みを減算します。ランダム値が負またはゼロになる最初の結果が、重み付けされたランダム結果として選択されます。
提供されている PHP 関数 getRandomWeightedElement() はこのアプローチを実装しており、重み付けされた結果の連想配列を指定して、対応する結果を返すことができます。ランダムなキー。重みは整数である必要があり、整数以外の重みにはこの関数のカスタム調整が必要になる場合があることに注意してください。
以上がPHP で重み付き乱数を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。