各確率區(qū)間で結(jié)果が得られるように、確率に従ってデータを並べ替えるにはどうすればよいですか?
たとえば、次のようなデータセットがあるとします
リーリーKey は並べ替える値、value は配列內(nèi)のその位置に各値が出現(xiàn)する確率です。たとえば、配列內(nèi)の位置 0 に が出現(xiàn)する確率は 40% です。計(jì)算された配列、a は 40% です。機(jī)會(huì)が配列の最初に表示され、殘りは確率に従ってアルゴリズムで並べ替えられます。
私の現(xiàn)在の解決策 (Low の方法であり、配列が拡張するにつれてサポートし続けることはできません):
1. a の間隔が 0 ~ 40、b であると仮定して、既存の確率に従って間隔を分割します。は 40 ~ 60、c は 60 ~ 70 などになります。
2.関數(shù)を使用して 1 ~ 100 の範(fàn)囲の亂數(shù)を取得し、結(jié)果をスローします (つまり、対応する範(fàn)囲に入れます)。 )
コードは以下の通りです(最適化アイデア募集中)
リーリー 発生した問(wèn)題: (in_array の判定は、これらの間隔の値が 1 回しか計(jì)算できないため)
1. 計(jì)算された値が各間隔の値を持つとは限りません
2. コード Noスケーラビリティ
また、アドバイスをいただければ幸いです、アドバイスをお願(yuàn)いします、みなさん、ありがとうございました!
この質(zhì)問(wèn)には問(wèn)題があると思います。そのような入力は、條件を満たす分布が存在することさえ保証しません。
{a: 60, b: 40}
為例:全排列的空間是{ab, ba}
と一緒に。次に、あなたの定義によれば、それは次のようになります: