Permutation test: Difference between revisions
Content deleted Content added
MaiconSoft (talk | contribs) Added Delphi example |
Permutation test en FreeBASIC |
||
Line 664: | Line 664: | ||
PermTest(a, b); |
PermTest(a, b); |
||
[ "87.197", "12.802" ]</lang> |
[ "87.197", "12.802" ]</lang> |
||
=={{header|FreeBASIC}}== |
|||
{{trans|Phix}} |
|||
<lang freebasic> |
|||
Dim Shared datos(18) As Integer => {85, 88, 75, 66, 25, 29, 83, 39, 97,_ |
|||
68, 41, 10, 49, 16, 65, 32, 92, 28, 98} |
|||
Function pick(at As Integer, remain As Integer, accu As Integer, treat As Integer) As Integer |
|||
If remain = 0 Then |
|||
If accu > treat Then Return 1 Else Return 0 |
|||
End If |
|||
Dim a As Integer |
|||
If at > remain Then a = pick(at-1, remain, accu, treat) Else a = 0 |
|||
Return pick(at-1, remain-1, accu+datos(at), treat) + a |
|||
End Function |
|||
Dim As Integer treat = 0, le, gt, total = 1, i |
|||
For i = 1 To 9 |
|||
treat += datos(i) |
|||
Next i |
|||
For i = 19 To 11 Step -1 |
|||
total *= i |
|||
Next i |
|||
For i = 9 To 1 Step -1 |
|||
total /= i |
|||
Next i |
|||
gt = pick(19, 9, 0, treat) |
|||
le = total - gt |
|||
Print Using "<= : ##.######% #####"; 100*le/total; le |
|||
Print Using " > : ##.######% #####"; 100*gt/total; gt |
|||
Sleep |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
<= : 92.076035% 85058 |
|||
> : 7.923965% 7320 |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |