アプリ版:「スタンプのみでお礼する」機能のリリースについて

 こんばんわ。

 basicに関する質問です。現在下記のようなプログラムを作成しようとしています

 A地点からB地点まで行くのには、a.b.c.d.e.fの6つのルートがあります。男の子が
ルートaを選ぶ確率は20%
ルートbを選ぶ確立は15%
ルートcを選ぶ確立は10%
ルートdを選ぶ確立は 5%
ルートeを選ぶ確立は20%
ルートfを選ぶ確立は30%
とします。同じように、B地点→C地点、C地点→D地点…と6ブロックあるとし、各ルートも同じように選ぶにはパーセントがあるとします。

 男の子がたどったルートを表示し、そのルートを選んだ確率を表示する

といったプログラムなのですが、そのルートを選ぶための確立をどのようにプログラムするのかわかりません。説明が簡単でわかりにくいかもしれませんが、どなたかアドバイスをお願いいたします。

A 回答 (5件)

乱数の使い方に関しては既に回答されているので良いでしょう。



ただし、#2の判断方法だとルート選択の確率を正しく表現できないと思います。

x=rnd(1)
として、そのxに対して

0.0 ≦x<0.2 ならルートaへ
0.2 ≦x<0.35 ならルートbへ
0.35≦x<0.45 ならルートcへ
0.45≦x<0.5 ならルートdへ
0.5 ≦x<0.7 ならルートeへ
0.7 ≦x<1.0 ならルートfへ

と言う風になると思います。

この回答への補足

回答ありがとうございます。
ご指摘のように作成すると、
50 if x<0.2 then goto 100
60 if x<0.35 then goto 110
70 if x<0.45 then goto 120
80 if x<0.5 then goto 130
90 if x<0.7 then goto 140
100 if x<1.0 then goto 150
100 print "(1)"
110 print "(2)"
120 print "(3)"
130 print"(4)"
140 print"(5)"
150 print "(6)"

のようでいいのでしょうか?

補足日時:2003/01/07 17:27
    • good
    • 0

>乱数で0.6になってしまったりしたら条件に当てはまらなくなる(0.2以下ではなくなる)ので、おかしくなるのではないでしょうか?



ですから、0.6の時に当てはまらないので正しいんです。20%の確率にするために0.00~1.00間での数値がでてその中の0.20間での数値がでる確率を当てはめるわけですので。

0.6が当てはまったら確率がおかしくなってしまいます。
    • good
    • 0
この回答へのお礼

 そうでした・・・親切に一つ一つ答えていただきありがとうございました。

お礼日時:2003/01/06 21:15

>0~1までの乱数を発生させるプログラムをお教え願えませんでしょうか?



x=Rnd(1) で0から1までの乱数を発生させます。

ただ、プログラムの最初に

RANDOMIZE VAL(MID$(TIME$,4,2))+1*VAL(MID$(TIME$,7,2))

などと入れて乱数を初期化してやらないと常に同じ結果が出てしまいます。
    • good
    • 0

すみません訂正です



0.2以上だったらルートa
0.15以上だったらルートb




0.2以下だったらルートa
0.15以下だったらルートb

ですね。

この回答への補足

 重ね重ね申し訳ありません。 
素人質問で申し訳ないのですが、乱数で0.6になってしまったりしたら条件に当てはまらなくなる(0.2以下ではなくなる)ので、おかしくなるのではないでしょうか?

補足日時:2003/01/06 20:41
    • good
    • 0

0から1までの乱数を発生させてそれをif文で


0.2以上だったらルートa
0.15以上だったらルートb
というように判定してやればいいかと思います。
それを配列に入れておいて最後に配列の内容を全部かけてやればいいかと思います。
    • good
    • 0
この回答へのお礼

迅速なお答えありがとうございます。

プログラムの原理はわかったのですが、申し訳ないのですが0~1までの乱数を発生させるプログラムをお教え願えませんでしょうか?

お礼日時:2003/01/06 20:31

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