Permutation test: Difference between revisions
no edit summary
(Added Java) |
No edit summary |
||
Line 638:
<lang>under: 87.1972%
over: 12.8028%</lang>
=={{header|Java}}==▼
{{trans|Kotlin}}▼
<lang Java>public class PermutationTest {▼
private static final int[] data = new int[]{▼
85, 88, 75, 66, 25, 29, 83, 39, 97,▼
68, 41, 10, 49, 16, 65, 32, 92, 28, 98▼
};▼
private static int pick(int at, int remain, int accu, int treat) {▼
if (remain == 0) 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);▼
}▼
public static void main(String[] args) {▼
int treat = 0;▼
double total = 1.0;▼
for (int i = 0; i <= 8; ++i) {▼
treat += data[i];▼
}▼
for (int i = 19; i >= 11; --i) {▼
total *= i;▼
}▼
for (int i = 9; i >= 1; --i) {▼
total /= i;▼
}▼
int gt = pick(19, 9, 0, treat);▼
int le = (int) (total - gt);▼
System.out.printf("<= : %f%% %d\n", 100.0 * le / total, le);▼
System.out.printf(" > : %f%% %d\n", 100.0 * gt / total, gt);▼
}▼
}</lang>▼
{{out}}▼
<pre><= : 87.197168% 80551▼
> : 12.802832% 11827</pre>▼
=={{header|jq}}==
{{works with|jq|1.4}}
Line 686 ⟶ 723:
% under=87.14304271579813
% over=12.856957284201869
▲=={{header|Java}}==
▲{{trans|Kotlin}}
▲<lang Java>public class PermutationTest {
▲ private static final int[] data = new int[]{
▲ 85, 88, 75, 66, 25, 29, 83, 39, 97,
▲ 68, 41, 10, 49, 16, 65, 32, 92, 28, 98
▲ };
▲ private static int pick(int at, int remain, int accu, int treat) {
▲ if (remain == 0) 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);
▲ }
▲ public static void main(String[] args) {
▲ int treat = 0;
▲ double total = 1.0;
▲ for (int i = 0; i <= 8; ++i) {
▲ treat += data[i];
▲ }
▲ for (int i = 19; i >= 11; --i) {
▲ total *= i;
▲ }
▲ for (int i = 9; i >= 1; --i) {
▲ total /= i;
▲ }
▲ int gt = pick(19, 9, 0, treat);
▲ int le = (int) (total - gt);
▲ System.out.printf("<= : %f%% %d\n", 100.0 * le / total, le);
▲ System.out.printf(" > : %f%% %d\n", 100.0 * gt / total, gt);
▲ }
▲}</lang>
▲{{out}}
▲<pre><= : 87.197168% 80551
▲ > : 12.802832% 11827</pre>
=={{header|Julia}}==
|