プロが教える店舗&オフィスのセキュリティ対策術

例えば、セルB1に1月C2に2月という感じで列の指定をして(仮に6月まで)、A2にAAA、A3にBBB、A4にCCCとあったとします。
それぞれ月の合計も決まっていて、AAA,BBB,CCCの合計も決まっています。
その際にセルB2:G4までのなかに乱数を発生させ、表を完成したいと思います。
列のみか行のみならうまくいくのですが、列・行とも考えての乱数ができません。
アドバイスよろしくお願いします。

A 回答 (2件)

#1のNutrockerです。


少々考察が不足していました。

行と列の合計が決まっているので、適当な値(ランダム値)で
帳尻を合わせることは無理のようです。

合計が概算値であり、多少の微調整をしても良いのであれば
#1の手順で全てのデータを決めた後、合計を再計算することで可能かと思います。

---------------------------------------------------------------------
ランダム関数は0~1の値を返すので、実際の値は

V=(平均値)+(変動幅)×(rand()-0.5)

で求めます。
ご質問の例では、行または列の平均が(平均値)になります。
変動幅はデータの意味合いに合ったもっともらしい値を設定します。

(#1の回答で分散ファクターと呼んだのはこの変動幅のことです。)

---------------------------------------------------------------------
あと気になったのは、(行の合計の合計)=(列の合計の合計)
となっているかどうかです。
一致していなければ合計自体が誤っているのでそもそも値の設定は不可能です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
合計値は確定で微調整できないので、#1の方法で平均値を行の合計/総合計*列合計にして変動幅を設定しました。
そうすると、6月のマイナスになる率が減り、マイナスが出た場合を想定して、Loopで処理するにしました。
無理やりのやり方かもしれませんが、なんとか結果でるようになりました。
V=(平均値)+(変動幅)×(rand()-0.5)
これはとても参考になりました。

お礼日時:2002/09/18 22:34

列のみはうまくいくなら1月~5月を同じ要領で完成できますよね。



6月はその合計から引いた分を設定すればよろしいのでは?

6月が他の月とアンバランスであれば、
元々の分散ファクターがおかしいので調整しましょう。

この回答への補足

回答ありがとうございます。
Nutrockerさんの回答の通りしたのですが、6月にマイナスの数値がでてしまうことがあります。
分散ファクターとは乱数の構文の事でしょうか?
もしそうなら、調整の仕方がうまくいかずこまっています。
よろしければ、回答お願いします。

補足日時:2002/09/17 21:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!