Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
25
Task/Permutation-test/AWK/permutation-test.awk
Normal file
25
Task/Permutation-test/AWK/permutation-test.awk
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# 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 )
|
||||
}
|
||||
28
Task/Permutation-test/Nim/permutation-test.nim
Normal file
28
Task/Permutation-test/Nim/permutation-test.nim
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
import strformat
|
||||
|
||||
const data = [85, 88, 75, 66, 25,
|
||||
29, 83, 39, 97, 68,
|
||||
41, 10, 49, 16, 65,
|
||||
32, 92, 28, 98]
|
||||
|
||||
func pick(at, remain, accu, treat: int): int =
|
||||
if remain == 0:
|
||||
return if accu > treat: 1 else: 0
|
||||
return pick(at - 1, remain - 1, accu + data[at - 1], treat) +
|
||||
(if at > remain: pick(at - 1, remain, accu, treat) else: 0)
|
||||
|
||||
|
||||
var treat = 0
|
||||
var le, gt = 0
|
||||
var total = 1.0
|
||||
for i in countup(0, 8):
|
||||
treat += data[i]
|
||||
for i in countdown(19, 11):
|
||||
total *= float(i)
|
||||
for i in countdown(9, 1):
|
||||
total /= float(i)
|
||||
|
||||
gt = pick(19, 9, 0, treat)
|
||||
le = int(total - float(gt))
|
||||
echo fmt"<= : {100.0 * float(le) / total:.6f}% {le}"
|
||||
echo fmt" > : {100.0 * float(gt) / total:.6f}% {gt}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue