3

行列の 2 つのランダムなセットを生成する必要があります。それぞれに 2 ~ 10 の範囲の 3 桁の数字が含まれています

そのように

行列 1: 994,878,129,121

行列 2: 272,794,378,212

両方の行列の数値は 100 より大きく、999 より小さくなければなりません

しかし

両方の行列の平均は、ユーザーが入力した制約が何であれ、1:2 または 2:3 の比率でなければなりません。

私の数学のスキルは限られているので、どうすればこれを実現できますか?

4

2 に答える 2

2

これを行うには、各リストにいくつの数字があるかを知る必要があります。あなたの例から、それぞれに4つの数字があると想定しています。

  1. 最初のリストに 4 つの乱数を入力します。
  2. 最初のリストの平均を計算します。
  3. 平均値に 2 または 3/2 を掛けます (ユーザーが入力した方)。これは、2 番目のリストの必要な平均です。
  4. 4 を掛けます。これは、2 番目のリストの必要な合計です。
  5. 3 つの乱数を生成します。
  6. 手順 4 の合計から、手順 5 の 3 つの数値の合計を引きます。これは、2 番目のリストの 4 番目の数値です。
  7. 手順 6 の数値が正しい範囲にない場合は、手順 5 からやり直してください。

2 番目のリストの最後の数値は、リスト内の他の値に基づいているため、完全にランダムではないことに注意してください。

于 2008-10-27T14:31:53.247 に答える
1

一連の乱数 s1 があります。

s1= [ random.randint(100,999) for i in range(n) ]

他のセット s2 が異なる平均値を持つには、単純に異なる範囲を持つ必要があります。異なる範囲からランダムに値を選択するか、ランダムな値をフィルタリングして異なる範囲を取得します。

100 から 999 の範囲からいくつの乱数を選択しても、平均は常に約 550 です。異なる値になる確率は、平均の両側の正規分布の確率とまったく同じです。

同じ範囲から選択された値で根本的に異なる平均値を持つことはできません。

于 2008-10-27T14:33:53.680 に答える