ビンゴの結果を整形表示
Posted feedbacks - awk
表示方法のみの変更なので show() 関数だけ変更
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | BEGIN {
srand
}
{
n = $1
bingo(n,ar)
show(n,ar)
}
function show(n,ar, i,j,k,s1,s2)
{
s1 = s2 = ""
k = length(n)
for (i=1; i<=n; i++) {
s1 = s1 sprintf(" %"k"d", i+j)
s2 = s2 sprintf(" %"k"d", ar[i+j])
if (i % 10 == 0) {
print s1
print s2
print ""
s1 = s2 = ""
}
}
if (s1 !~ /^$/) { # n % 10 > 0
print s1
print s2
print ""
}
}
function rand_between_1_and_n(n, x)
{
x = 1 + int(rand * n)
return (x <= n)? x : rand_between_1_and_n(n)
}
function bingo(n,ar, i,x,y,t)
{
delete ar;
for (i=1; i<=n; i++) ar[i] = i
for (i=n*2; i>0; i--) {
x = rand_between_1_and_n(n)
y = rand_between_1_and_n(n)
if (x == y) continue
t = ar[x] ; ar[x] = ar[y] ; ar[y] = t
}
}
|


raynstard
#3403()
Rating1/1=1.00
「重複無し乱数」で作ったbingo関数の結果を下のように「何番目の乱数か」とセットにして10個ずつ折り返して表示するコードを書いてください。
[ reply ]