26 lines
845 B
Awk
26 lines
845 B
Awk
# syntax: GAWK -f PERMUTATION_TEST.AWK
|
|
# converted from C
|
|
BEGIN {
|
|
# "treatment..................control......................"
|
|
n = split("85,88,75,66,25,29,83,39,97,68,41,10,49,16,65,32,92,28,98",data,",")
|
|
for (i=1; i<=n; i++) { # make AWK array look like a C array
|
|
data[i-1] = data[i]
|
|
}
|
|
delete data[n]
|
|
total = 1
|
|
for (i=0; i<9; i++) { treat += data[i] }
|
|
for (i=19; i>10; i--) { total *= i }
|
|
for (i=9; i>0; i--) { total /= i }
|
|
gt = pick(19,9,0,treat)
|
|
le = total - gt
|
|
printf("<= : %9.6f%% %6d\n",100*le/total,le)
|
|
printf(" > : %9.6f%% %6d\n",100*gt/total,gt)
|
|
exit(0)
|
|
}
|
|
function pick(at,remain,accu,treat) {
|
|
if (!remain) {
|
|
return (accu > treat) ? 1 : 0
|
|
}
|
|
return pick(at-1,remain-1,accu+data[at-1],treat) + ( (at > remain) ? pick(at-1,remain,accu,treat) : 0 )
|
|
}
|