dポイントプレゼントキャンペーン実施中!

Processingで1~76からランダムに重複なく25個の数字を取り出したいのですが、
そのプログラム文を教えていただけませんか?

取り出した25個のの数字は、a1~a25にそれぞれ代入するつもりです。

A 回答 (1件)

こんにちは。


こんな感じでどうでしょう。
(a1~a25だと代入が面倒なので配列にしました)
------
int x[] = new int[77];
int data[] = new int[25];

int rd = 0;
int tmp = 0;
int i = 0;
int j = 0;

for(i=0; i<77; i++)
{
// インデックスと同じ値を代入します
x[i] = i;
}

for(i=76; i>=1; i--)
{
rd = (int)random(1, i);

// 乱数をインデックスとして利用し、その配列の中の値と配列末尾の値を交換します
// ※末尾(乱数のMAX値)はループごとにデクリメント
tmp = x[rd];
x[rd] = x[i];
x[i] = tmp;

// 25個用
data[j++] = tmp;
if(j >= 25){ break; }
}

for(i=0; i<25; i++)
{
println(data[i]);
}

ーーーー
↓参考になりますよ^^
http://oshiete.goo.ne.jp/qa/1240730.html?pg=0
    • good
    • 2
この回答へのお礼

おかげさまで、思い通りのものが組みあがりました!
ありがとうございます!!

お礼日時:2012/09/11 00:45

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


このQ&Aを見た人がよく見るQ&A