乱数に関して

解決


まるなげ御法度  2009-11-11 23:37:45  No: 146500

Dim rn As Random = New Random()
If  rn.NextDouble() > 0.4 Then
            snowlocation.Add(New Point(rn.Next(PictureBox1.Width), -12)) 
            snowsize.Add(rn.Next(4, 11))
著作権に抵触するのですべてのコードは掲載できかねるのですが、
上のコードで rn.NextDouble() > 0.4は、乱数が0.4以上ならば
と解釈できるのですが、
なぜ、この条件が必要なのか理解ができかねています。
少ない情報から読み取っていただけたら有り難いです


まるなげ御法度  2009-11-12 03:03:28  No: 146501

少し考えてみました。

rn.Next(PictureBox1.Width), -12の部分でPictureBox1の幅が0.4以上
でなければ処理を実行しないという解釈でOKでしょうか?


ガッ  2009-11-12 05:25:06  No: 146502

snowlocation変数が何型でsnowlocation.Add()がどういう処理なのかわかりません.
snowsizeも同様です.

これだけでは,何をしてるのかは分かりますが,
何をしたいのか,が分かりません.
よってコメントのしようがありません.

> 上のコードで rn.NextDouble() > 0.4は、乱数が0.4以上ならば
細かいですが,"以上"ではなく"より大きい"です.


魔界の仮面弁士  2009-11-12 06:35:25  No: 146503

> rn.Next(PictureBox1.Width), -12の部分でPictureBox1の幅が0.4以上
> でなければ処理を実行しないという解釈でOKでしょうか?

rn.NextDouble() が返す値は、『0.0 以上 1.0 未満』です。
rn.Next(PictureBox1.Width) は、『0 以上 PictureBox1.Width 未満』です。

変数名から勝手に想像すると:
  ・これは「雪を降らせるアニメーション」の一部である。
  ・snowlocation は雪の座標を表す List(Of Point) 型変数。
  ・snowsize は雪の大きさを表す List(Of Integer) 型変数。

で、その If 文の意味は、
  ・約4割の確率で、サイズ 4〜10 の範囲の雪を PictureBox 内に降らせる。
という意図では無いかな…。

> 著作権に抵触するのですべてのコードは掲載できかねるのですが、
転載(≠引用)するのであれば、著作権者の許諾が必要になるはずですが、
もしかして、「すべて掲載すると抵触するが、一部だけだと抵触しない」と
その著作権者本人に言われてしまった……とか?


魔界の仮面弁士  2009-11-12 06:42:55  No: 146504

> ・約4割の確率で、サイズ 4〜10 の範囲の雪を PictureBox 内に降らせる。

「約6割」の間違いです。m(_ _)m


まるなげ御法度  2009-11-12 18:01:51  No: 146505

魔界の仮面弁士さん、回答有り難うございます。
それにしても、これだけのコードから解読できるとは驚きです。
衷心より厚くお礼申し上げます。
今後ともご指導よろしくお願いします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加