• ベストアンサー

乱数とは・・・?

質問なんですが、配列の中身が、( AA(10) ) AA(1) = "りんご" AA(2) = "ringo" AA(3) = "みかん" AA(4) = "mikan" …10まで日本語→ローマ字の繰り返し という形で、これを乱数でバラバラにして、AA(1)とAA(2)(同様に3と4)を一塊としてlabel 1,2に時間経過で表示したいのですが、 時間経過で表示は出来たのですが、乱数の使い方がよく分からないのでランダムに表示されません。 もしかしたら、1と2をセットとして表示というのは無理なんでしょうか?

noname#30978
noname#30978

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

  • ベストアンサー
回答No.3

配列の使い方は既出の回答で分かると思います。 Dim AA(5,5) as string の2次元配列でもいいし、AA(5) BB(5)の1次元配列2つでもOKです。 それを全部定義した後で、RNDOMIZE関数で乱数表のデフォルトを 変えれば起動ごとに違う乱数を取ってきます。 以下はサンプルです。 Dim AA(5) As String Randomize -Time AA(1) = "1" AA(2) = "2" AA(3) = "3" AA(4) = "4" AA(5) = "5" X = CInt(Rnd(1) * 4 + 1) Me.Label1.Caption = AA(X)

noname#30978
質問者

補足

お手数かも知れませんが、Randomize関数の記述の仕方を教えてもらえないでしょうか?持っている参考書のは載っていないので・・。

その他の回答 (4)

回答No.5

乱数とは乱数表の頭から順番に決まった値を取ってきます。 なので、RNDだけだと毎回決まった値になるわけです。 RNDMIZEを一番最初に記述するだけでシステムタイムから乱数の デフォルト位置を変える作業が行われます。 昔のVBではRNDMIZE 値で乱数のデフォルトを明示しなくてはなりませんでしたが、.NETでは暗黙的にやってくれるみたいです。

参考URL:
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh04/cformwsh04_03.html
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

配列の要素が10個あるとして、1と2、3と4、・・が組みになっているのなら 1,2,3,4、5(5以下)の乱数を発生し、発生した乱数Nの (N-1)*2+1と(N-1)*2+2の要素の配列を取り出せばよいだけ と思いましたが違いますか。 ポイントをはずしている場合はお詫びします。

noname#30978
質問者

お礼

参考にさせて頂きました。 ありがとうございました。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

プログラムを作成している環境は? VB6、VB.Net、VB2005、VBA ? この情報で回答が全然異なってくるので、大切ですよ。

noname#30978
質問者

補足

すいません。VB.NETです。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

乱数で配列をバラバラにしてというのは一々、配列をしなおしているというようなことでしょうか? なんか複雑怪奇にしていることがうまくいかない理由か、それとも乱数の発生を同じにしているとかその辺でしょうかね。 ・乱数でバラバラにするのではなく、選択する値を毎回ランダムにする ・乱数の種を二つに分ける で下記のようにしてみるのはどうでしょう。 Dim AA(1 To 5) Dim BB(1 To 5) Dim x1 As Integer,x2 as Integer Dim y1 As Integer,y2 as Integer AA(1) = "りんご" AA(2) = "みかん" AA(3) = "きゅうり" AA(4) = "なす" AA(5) = "うんこ" BB(1) = "ringo" BB(2) = "mikan" BB(3) = "kyuuri" BB(4) = "nasu" BB(5) = "unko" x1 = Int(Rnd * 5) + 1 y1 = Int(Rnd * 5) + 1 x2 = Int(Rnd * 5) + 1 y2 = Int(Rnd * 5) + 1 MsgBox (AA(x1) & "/" & BB(y1) & Chr(10) & AA(x2) & "/" & BB(y2))

noname#30978
質問者

お礼

参考にさせて頂きました。 ありがとうございました。

関連するQ&A

  • 乱数で同じものが出ない処理ってどうやるんですか?

    .NETでタイピングゲームを作っています。 乱数を使って日本語とそのローマ字を1セットとして表示していくプログラムなんですが、どうしても同じものが出てしまうのですが、同じ日本語とローマ字のセットが表示されないようにするにはどうすればよいでしょうか? ちなみに、コード下記のように作りました。 Randomize() 乱数 = Math.Floor(Rnd() * 要素数) + 1 If 乱数 Mod 2 = 0 Then '乱数が偶数の時 Label1.Text = Typeword(乱数 - 1) '日本語表示 Label2.Text = Typeword(乱数) 'ローマ字表示   elseで、乱数が奇数の処理を行う。

  • 配列と乱数を使ったプログラム

    配列と乱数を使ったプログラムについて 今年からプログラミングについて勉強する事になったのですが、 配列と乱数を上手く使うことができません。やりたいと思っていることが おみくじのプログラムで 大吉 中吉 小吉 という3つの配列からウィンドウ上にランダムで 一つ表示するというプログラムです。 【おみくじの結果は *** です。】 ←***の部分がランダムに配列から表示される結果です。(分かりづらなかったら、ごめんなさい) 病欠で2週ほど授業に出席する事が出来なかったので、配列と乱数についてよく分かりません。 PENというソフトで学習しているので、出来るならPENにそって教えてもらえると、嬉しいです。 宜しくお願いしますm(_ _)m

  • 一様乱数?疑似乱数?

    0.0以上~1.0未満の範囲のdouble型一様乱数rdmを1000個発生させて、ヒストグラムをつくりたいのですが、このような書き方で良いのか、ご教示願えませんでしょうか。 ヒストグラムと言っても、グラフではなく、区間0≤u<0.1、0.1≤u<0.2、…、0.9≤u<1.0の10区間とし、配列aaに格納しているだけです。 また、「Math.random」を用いるやり方は理解できるのですが、下記のような書き方はいまいち納得できません。 疑問点1つ目、前者は毎回発生する乱数が違うのに、後者は同じですよね?なぜでしょうか。後者は毎回決まった値が出るので、初期値(seed)から決まった計算をしているということでしょうか。 疑問点2つ目、//kokoの次の行に x = rdm.nextDouble(); のように発生させた乱数を一時的に入れておかなくてもよいのでしょうか。 import java.util.*; public class test { public static void main(String [] args) { int aa [] = new int [10]; long seed = 999L; Random rdm = new Random(); rdm.setSeed(seed); for(int i = 0; i < 1000; i++){ for(int j=1; j<=10; j++){//koko if(rdm.nextDouble() < ((j-1)*0.1) && rdm.nextDouble() >= (j*0.1)) aa[j-1] = aa[j-1] + 1; } } for(int i=0; i<10; i++){ System.out.println( aa[i] ); } } }

    • ベストアンサー
    • Java
  • 乱数での確率

    乱数に確率をつけることはできるでしょうか? たとえば配列にA、B、Cの3つの要素を収めておいて、  Aが出る確率=50%  Bが出る確率=30%  Cが出る確率=10% といったように確率を設定してランダム表示させたいのですが。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでカテゴリページ別に記事を表示

    例えば以下のようなカテゴリメニューがあり、 りんごをクリックすると、ringo.phpにりんごカテゴリに属する記事をすべて表示する。 っといったようなことをする場合、wordpressを使わずにやるにはどうすれば良いのでしょうか? <ul> <li><a href="ringo.php">りんご</a></li> <li><a href="mikan.php">みかん</a></li> <li><a href="budou.php">ぶどう</a></li> </ul> 一番簡単そうなのはカテゴリメニューに以下のようなidをつけて、 もしidが1ならばりんごの記事をすべて書き出すのようにすれば良いのかと思いますが、 このようなやり方をしているサイトはあまり見かけません。 皆さんはブログやCMSでは一般的にどのようなやり方をされているのでしょうか? <ul> <li><a href="ringo.php?id=1">りんご</a></li> <li><a href="mikan.php?id=2">みかん</a></li> <li><a href="budou.php?id=3">ぶどう</a></li> </ul>

    • ベストアンサー
    • PHP
  • .htaccessでのカノニカル指定

    大量のPDFファイルを所持するサイトを運営しています。 ディレクトリ構成は、 ■ルート(http://hogehoge.com/) index.html hoge1.html hoge2.html │ └■食べ物フォルダ   ├index.html   │   ├■果物ごフォルダ   │ ├index.html   │ │   │ ├■りんごフォルダ   │ │ ├index.html   │ │ ├ringo1.pdf   │ │ ├ringo2.pdf   │ │ ├ringo3.pdf   │ │   │ ├■みかんフォルダ   │ │ ├index.html   │ │ ├mikan1.pdf   │ │ ├mikan2.pdf   │ │ ├mikan3.pdf   │ │   │ ├■ぶどうフォルダ   │   ├index.html   │   ├budou1.pdf   │   ├budou2.pdf   │   ├budou3.pdf   │   ├■野菜フォルダ   ・   ・   ・ ルート→「食べ物」→「果物 / 野菜」→「りんご・みかん・ぶどう / キャベツ・大根・人参」 という具合で、すべてのフォルダ内にはindex.htmlと関連する 複数のpdfファイルを格納している状態です。 それぞれのpdfファイルは内容がほぼ一緒なので link rel="canonical" を設定したいんです。 ringo1.pdf + ringo2.pdf + ringo3.pdf → りんごフォルダの index.html にカノニカル指定 という具合に全てのフォルダで行いたいのですが自分なりに調べた結果、 <FilesMatch "\.pdf$"> Header set Link "<http://hogehoge.com/食べ物/果物/(りんごorみかんorぶどう)/index.html>; rel=\"canonical\"" </FilesMatch> と記入した.htaccessファイルを各フォルダに1個1個設置すれば実現できると思うのですが、 数が膨大になってしまうので、もっとスマートな方法があれば・・ と思い質問させて頂きました。 詳しい方、どうか知恵をお貸し下さい。

    • ベストアンサー
    • PHP
  • 1つのcakePHPで複数のサイトを作成したい

    1つのアプリ(cakePHP)で、複数のサイトが入っている物を作成したいです。 URLであらわすと下記のように、みかんコンテンツとりんごコンテンツが1つのサイトの中に別々にある感じです。 http://ドメイン/mikan/top/index/ http://ドメイン/ringo/top/index/ (http://ドメイン/コンテンツ名/コントローラー名/ファンクション名/) また、ファイル数が膨大になるため、下記のようにフォルダ分けをしたいです。 ●controllersフォルダ controllers   └mikan     └top_controoler.php   └ringo     └top_controller.php ●viewsフォルダ views   └mikan     └top      └index.html   └ringo     └top      └index.html ※controllerとview以外のファイルは共通で使いたい こうしたいのですが、ルーティングなどをいじっても上手くいかず、現在は下記のようにしています。 http://ドメイン/mikan_top/index/ http://ドメイン/ringo_top/index/ (http://ドメイン/コントローラー名/ファンクション名/) ●controllersフォルダ controllers   └mikan     └mikan_top_controoler.php   └ringo     └ringo_top_controller.php しかし、これだとURLがかっこ悪いので、最初に示したURLでアクセスできるようにしたいのです。 何かいい方法は無いでしょうか? controllerやviewのファイル名、クラス名などは複雑になっても構いません。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 乱数を発生させて、それを配列して小さい順に並べる

    乱数の発生のさせ方は、質問集で見て import java.util.Random; class ransuu { public static void main(String args[]) { Random rand = new Random(); for ( int i = 0; i <10; i++){ int x = rand.nextInt(9); System.out.println(x); } } } を用いて表示できたのですが、そのあとの配列がよく分かりませんのでぜひ教えてください。ちなみに私の持っているテキストには任意の数(22、80、57、60、50など)を並べ替えるというものはあるのですが、今回のような乱数+配列の例が載っていないのでよく分かりませんでした。

    • ベストアンサー
    • Java
  • エクセルのデータ処理で困っています

    あまりエクセル関数に詳しくないので困っております。 2点ほど質問があるのですが… 1. B1セルから横に    [A], [B], [C] , [D] , [E] , [F] [1]      , mikan, ichigo , - , mikan , - [2]      , - , ichigo , ichigo , ichigo, -    と入っています。 (桁がずれて表示されてしまうので、セルの区切りにカンマを入れました。見えづらくてすみません。以下の表も同様です)   この時、各行毎に、入力されているデータ(ハイフンは除く)が同じものであるかどうかを判定し、同じであれば●を、違うものが混じっていれば×を、[A]列に入力したいのです。  結果としては[A1]が×、[A2]が●となればよいのですが…  if(B1=C1=D1=E1=F1,"●","×")と入れてみましたが、"-"をどう処理すればよいのかわからず、お手上げです。 2. B1セルから横に   [A], [B], [C], [D] [1]     Q05 ,   mikan , orange [2]     P05 ,   mikan , orange [3]     S12,   りんご,   apple [4]     R09,   ぶどう,   grape [5]     P10 ,   ringo, apple [6]     S16,   りんご,   apple [7]     P30 ,   みかん,  orange [8]     T42 , ミカン,  orange と入っています。  [A]列に重複の有る無しを入力したいのですが、条件があり、  まず、[D]列が同じものであること、  次に、[B]列の数字部分が等しくないものについて、  上から順番に、重複1、重複2,…と[A]列にいれていきたいのです。  [A]列にはすべて同じ式を入れますが、重複でないセルは"" になるように設定していただくと助かります。 結果として、      [A], [B], [C], [D] [1] 重複1, Q05 , mikan, orange [2]   ,  P05, mikan, orange [3] 重複2, S12, りんご,   apple [4]   ,   R09, ぶどう,   grape [5] 重複2, P10 , ringo, apple [6] 重複2, S16,   りんご,   apple [7] 重複1, P30 , みかん,  orange [8] 重複1, T42, ミカン,  orange   このようになれば、と思っています。  これについては、頭の中が混乱して、お手上げ状態です。   未熟者なので、関数でご教授いただければありがたいですが、もし無理なようであればVBA でも… よろしくお願いいたします。

  • 文字列を表示/非表示させつつ、ラジオボタンを選択

    つぎのテーブルがあります。 <html><head></head><body> <form id="query" name="query"> <table border="1"> <tr> <td>いちご▲▼</td> <td>みかん▲▼</td> <td>りんご▲▼</td> </tr> </table> <input type="radio" name="select" value="ichigo_up" checked >いちご▲ <input type="radio" name="select" value="ichigo_dw">いちご▼ <input type="radio" name="select" value="mikan_up">みかん▲ <input type="radio" name="select" value="mikan_dw">みかん▼ <input type="radio" name="select" value="ringo_up">りんご▲ <input type="radio" name="select" value="ringo_dw">りんご▼ </form> </body></html> (1) 最初(画面読み込み時)はいちごの脇の「▼」1個だけが表示されている(他の▲は全部隠す) (2) いちごをクリックすると、▼は反転して▲になる (3) もう一回いちごをクリックすると、▲は反転して▼に戻る (4) つぎに、みかんをクリックするといちごの脇の▼は消え、みかんの脇に▼がでる (5) もう一回みかんをクリックすると、▼は反転して▲になる (6) さらに、りんごをクリックするとみかんの脇の▲は消え、りんごの脇に▼がでる (7) 別途、表示される6パターンに応じ、下にあるラジオボタンも適切なものが選択される …というような動作をさせたいのです。 どうぞ、よろしくお願い致します。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1612522 でも同じような質問を してしまい、すみません。もう少し吟味して、上記のようにしたいです。 よろしくお願い致します。