重複無し乱数
Posted feedbacks - C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | using System;
using System.Text;
class Program
{
static void Main()
{
Console.WriteLine(bingo(3));
}
static string bingo(int n)
{
Random r = new Random();
int[] a = new int[n];
for (int i = 0; i < n; ++i) a[i] = i + 1;
for (int i = n; i > 1; --i)
{
int k = r.Next(i);
int tmp = a[i - 1];
a[i - 1] = a[k];
a[k] = tmp;
}
StringBuilder sb = new StringBuilder("(");
for (int i = 0; i < n; ++i)
{
if (i > 0) sb.Append(", ");
sb.Append(a[i]);
}
sb.Append(")");
return sb.ToString();
}
}
|
出力がランダムな場合、皆さんどんな風にテスト書いてるんでしょうね
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | static string bingo(int num)
{
//ランダムな配列を作成
System.Collections.ArrayList al= new System.Collections.ArrayList(num);
Random r= new Random();
for(int i=1; i<= num; i++)
al.Insert(r.Next(i), i);
//文字列で出力
System.Text.StringBuilder sb= new System.Text.StringBuilder();
for(int i=0; i< al.Count; i++)
sb.Append(al[i].ToString()+",");
return sb.ToString().Trim(',');
}
|

raynstard
#3402()
Rating0/0=0.00
このお題はraynstardさんの投稿を元にしています。ご投稿ありがとうございました。 投稿の内容には表示のしかたも含まれていたのですが、 このお題では「重複しない1~nまでの乱数をどうやって作るか」という点に集中することにして、 結果の整形は続編としてこの後のお題で出すことにします。 サンプル入出力は下のようになります。
[ reply ]