PHP を使用して n 個の数値を生成し、その合計を定数値にする方法は?
すみません、英雄の皆さん、n 個の数値を生成し、その合計を定数値にする方法はありますか?
実現したい関数は次のとおりです:
たとえば、10 個のサイトがあり、それぞれにランダムにパーセンテージを割り当て、合計を 100% にします。これは、いくつかの方法から最適な割り当てを選択したいためです。この計画には間違いなくループが含まれるため、少し混乱しているので、事前にアドバイスをいただければ幸いです。
-----解決策--------------------------------
Baidu: 整数の除算。
------解決策---------
1 ~ 100 の間で、n-1 個の乱数を生成します、n+1 個の数値が並べ替えられ、隣接する数値の差がパーセントになります。
------解決策------------------
php code
/**
+-------------------------------------------------
* 機能: ランダムに 10 パーセントを生成します。合計は 1
* @auathor Beatyou385981202
* @time 2012-6-15
+---------------------- -- --------
*/
print_r(percentage_num());
functionpercentage_num()
{
// ランダムに生成保存場所の割合
$arr_num = array();
//最初の値の範囲を初期化します
$num = 100;
for($i=1; $i {
$arr_num[$i] =random_num($num);
$num = $num - $arr_num[$i];
}
//最後のパーセンテージについては、100 から最初の 5 つの合計を減算します。
for($i=1;$i {
$add_num += $arr_num[ $i];
}
$arr_num[10] = 100 - $add_num;
return $arr_num;
}
関数random_num($num )
{
return rand(1,$num/2.5);
//より理想的な結果を得るために、ここではランダム生成の範囲が縮小されています
}
それが役に立てば幸いです(笑)
------解決策---------
これは、数値をランダムに生成するという単純な PHP の問題ではありません。再帰的検索アルゴリズムが含まれます
私は C 言語とデータ構造とアルゴリズムのフォーラムに所属しており、アルゴリズムについては少し知っています
まず、投稿者の問題を分析させてください。最適なものは何ですか?
しかし、元の投稿者の最適なものは間違いなく以下の状態空間にあります。これらの 100 の数値は、
100 個の認識されたキューとして想像できます。個人的に、そして 100 人目の人の意見では、間違いなく 99 個のギャップが存在します。
実際、これらの 99 個のギャップに 9 つのパーティションをランダムに配置すると、希望する結果が得られます
では、99 個から 9 個を選択する方法は何通りありますか?数値 C(99,9) は非常に大きいです
を計算できますが、すべての結果を出力するには時間がかかります。
------解決策---------
彼はステップ サイズとして 0.01 を望んでいます。 ....