n人中m人が当選するくじ
Posted feedbacks - D
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 31 32 33 | module doukaku;
private import std.stdio;
private import std.random;
void remove(int[] ary, int pos) {
if (ary.length != pos+1)
for (int i=pos+1; i < ary.length; i++)
ary[i-1] = ary[i];
ary.length = ary.length - 1;
}
int[] lot(int n, int m) {
int i;
int[] lot, ret;
for (i=1; i<=n; i++) lot ~= i;
for (i=1; i<=m; i++) {
int pos = rand() % lot.length;
int x = lot[pos];
remove(lot, pos);
lot.length = lot.length - 1;
ret ~= x;
}
return ret;
}
void print_lot(int n, int m) {
foreach(x; lot(n, m)) writefln(x);
}
void main() {
print_lot(9999, 4);
}
|


にしお
#3360()
Rating0/0=0.00
[ reply ]