• ベストアンサー

乱数を扱いたい

Active Basicでプログラムの練習をしています。 今回、乱数を扱いたいのですが、どうしても分かりません。 例えば、1~100までの整数を用意して、その中から数字をランダムで1つ取り出すっと言ったことをしたいのですが・・・・ ((例:58 など)) Rnd( )と言う関数があるようなのですが、いまいち使い方がよく分かりません。 他の関数を使用するのかも分かりません。 すみませんが、どなたか知っていましたら、ご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

http://orios.s151.xrea.com/activebasic/basic/lesson1-4-1.html [6] num = Fix(Rnd() * 4) ─ 乱数(Rnd関数) の所を参照願います。 1~100であれば、 Fix(Rnd()*100)+1 とすれば、()内が0~99の結果になり、それに+1をするから 1~100になるはずです。 ご参考程度に。

関連するQ&A

  • 乱数

    乱数を発生させる際に Sub Sample() Debug.Print Int((10 - 1 + 1) * Rnd + 1) End Sub で、1から10までの乱数を発生できますが、 1から10と言う連続した数字ではなく、 例えば10,13,18,43・・・ という規則性のない複数の数字からランダムに数字を発生させるにはどうすればいいでしょうか? 10,13,18,43の中から10を返したり、18を返したりする方法を教えてください。

  • 乱数生成について

    VisualBasic2010を使用しています。 コード内に複数回、乱数を生成しています。 普段は始めだけRandomizeして、Rnd関数を使用していて、毎回違う乱数を生成させているのですが、 今回は毎回同じ乱数を生成させたいのですが、どうやったらできるでしょうか? シード値をどうこうするとは、わかったのですがやり方がわかりません。 わかる方、どうぞよろしくお願いします。

  • 乱数について(Rnd関数)

    すみません。質問があります。 VBAを用いてパチスロシミュレータを作成しているのですが 乱数が偏っている気がしてなりません。 乱数はRnd関数を用いて0~65535の範囲で生成しています。 もちろん初期化時にRandomizeも用いています。 毎ゲーム開始時にそのゲームで必要な乱数を4つ r1 = Int(Rnd() * 65536) r2 = Int(Rnd() * 65536) r3 = Int(Rnd() * 65536) r4 = Int(Rnd() * 65536) というように生成しています。 それらの乱数を用いて複雑なモード移行などを行っているのですが、 ある条件下でr1のあるビットが1になりやすいというような現象が起こります。 乱数に法則性があることは不思議ではないんですが、Rnd関数による乱数っていうのは多少複雑な処理をしただけでこのような不具合が出る可能性があるのでしょうか。 私のプログラムに問題があるとは思うのですが、「もしかして、乱数のせいかも?」という疑念を抱いてデバッグするのはつらいものがあるので。 ですので、 ・変な使い方をすれば目に見えて偏る可能性もある。 という意見の方はその「変な使い方」というのを具体的に教えていただけないでしょうか? また、そのような意見の方がしばらくいらっしゃらない場合はRnd関数による乱数は実用上問題なく使えると解釈したいと思います。 よろしくおねがいします。

  • 乱数について

    javaで使用可能な乱数にはMath.random()などがあります。その他にもあると思うのですが、なぜ一つの関数だけでないのですか?Math.random()にはなにか周期性や特徴みたいなものはあるのでしょうか?

    • ベストアンサー
    • Java
  • access2003の乱数で・・・

    はじめまして。access初心者です。 Rnd乱数を使ってテーブルからランダムにフォームに表示するおみくじのようなモノを作っています。テーブルには「CD」のフィールドを作り連番で整数を並べ、発生する乱数はこの範囲に指定し、テーブルのレコードを追加することでおみくじの回答を増やせる仕組にしています。 実際、動かすとランダムにおみくじの回答がフォームに表示されるのですが、一度accessを閉じて開いた場合の1回目の回答が毎回同じになってしまいます。(続けて2回目ですとランダムに出ます)原因や回避方法はあるのでしょうか?また、ファイルの保存先はファイルサーバーである事も何か影響あるのでしょうか? ご教授願えれば幸いです。

  • エクセルの乱数関数で乱数を作成する。

    エクセルの乱数関数で乱数を作成する。 たとえば1~100までの乱数を作成する時、 1,2,3,・・・・,99,100の整数を複数発生させずに1個ずつ発生させることができますか? VBAとかプログラムを作らないとダメでしょうか?

  • 乱数について教えてください!

    私はいまC言語で,1~10までの数字をランダムに10個発生させるプログラムを作っています. 単にランダムに発生させることはできるのですが,そうではなくて,10個の中に同じ数字が出てこないようにしたいのです. その方法についてどなたかご存知の方がおられましたら,ご教授お願い致します.

  • エクセルで、乱数の関数 同じ数が無いように

    乱数を発生させる関数で、RAND関数は、小数点(0~1の間)で、RANDBETWEEN関数は整数で出るとのことですが、RANDBETWEEN関数は同じ数字がいくつか重複して出ます。整数で同じ数が出ないようにする関数はないでしょうか?

  • パスカル言語を用いた乱数利用について

    パスカル言語を用いた乱数発生についての質問です。 パスカル言語を用いて0~100までの整数をランダムで10個出したいので、次のようにプログラムを組んだのですが、 欲しい乱数が出てきません。どこが間違えているか指摘していただけないでしょうか。よろしくお願いします。 var x : integer; p : real; {本当はintegerなのだろうが、使うよう指示されたrandom関数を使うとなるとrealしか受け付けなかった。} begin i := 0; x := seed(wallclock); while i <> 10 do begin i := i + 1; p := random(100); writeln('random(100)=',p) end end. ちなみに、これを出力した時の例はこのような感じです。 random(100)=6.8e-01 random(100)=6.4e-02 random(100)=9.3e-01 random(100)=1.3e-01 random(100)=7.2e-01 random(100)=8.8e-01 random(100)=9.1e-02 random(100)=9.5e-01 random(100)=3.6e-01 random(100)=7.9e-01 (※6.8e-01とは6.8*10^(-1)をのことです)

  • 乱数を使う

    お世話になっております。 乱数についての質問なんですが、 なんと説明して良いのかわからないので例を挙げます。 コマンドボタンを三つ用意する。 コマンドボタン1をクリックすると、1~3までのランダムな値を表示する。 続けてコマンドボタン2をクリックすると、 先ほど表示した数字以外の1~3までの値を返す。 同様にコマンドボタン3をクリックすると最後に残った数字を表示する。 ってなことがやりたいんですが、 アドバイスお願いします。 あ、あとコマンドボタンを1回クリックすると もう2度とクリックできないようにするなんて事は出来るんですか?

専門家に質問してみよう