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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| OpenConsole()
EnableGraphicalConsole(1)
ClearConsole()
; Par défaut les variables sont des integer
Procedure IIf(hasMatch, V, F)
If hasMatch
ProcedureReturn V
Else
ProcedureReturn F
EndIf
EndProcedure
Dim chosenNumbers(5)
chosenNumbers(1) = 1
chosenNumbers(2) = 20
chosenNumbers(3) = 33
chosenNumbers(4) = 14
chosenNumbers(5) = 45
numSequences = 200
sequenceLength = 5
minMatches = 4
reducedNumSequences = 100
; CInt arrondit (arrondi du banquier) à lentier le plus proche au lieu de tronquer la partie fractionnelle des nombres
Dim sequences( sequenceLength,numSequences)
For i = 1 To numSequences
For j = 1 To sequenceLength
rd.f=Random(1000000,0)/1000000
While rd=1.0
rd=Random(1000000,0)/1000000
Wend
sequences(j, i) = Round((Round((50 - 1 + 1) * Rd,#PB_Round_Down)),#PB_Round_Nearest) + 1
Next j
Next i
hasMatch.b = #False
For i = 1 To numSequences
matchCount = 0
For j = 1 To sequenceLength
For k = 1 To 5
If sequences(j, i) = chosenNumbers(k)
matchCount + 1
EndIf
Next k
Next j
If matchCount >= minMatches
hasMatch = True
EndIf
Next i
If Not hasMatch
ReDim sequences(sequenceLength,numSequences + 1)
For i = 1 To minMatches
sequences( i,numSequences + 1) = chosenNumbers(i)
Next i
For i = minMatches + 1 To sequenceLength
rd.f=Random(50,1)
While rd=1.0
rd=Random(50,1)
Wend
sequences(i,numSequences + 1) = Round(Round(((10 - minMatches) - (minMatches + 1) + 1) * Rd,#PB_Round_Down),#PB_Round_Nearest) + (minMatches + 1)
Next i
EndIf
Dim reducedSequences(reducedNumSequences, sequenceLength)
For i = 1 To reducedNumSequences
rd.f=Random(50,1)/50
While rd=1.0
rd=Random(50,1)/50
Wend
sequenceIndex = Round(Round(((numSequences + IIf(hasMatch, 0, 1)) - 1 + 1) * Rd,#PB_Round_Down),#PB_Round_Nearest) + 1
For j = 1 To sequenceLength
reducedSequences(i, j) = sequences(j,sequenceIndex)
Next j
Next i
;OpenConsole()
For i = 1 To reducedNumSequences
For j = 1 To sequenceLength
Print(Str(reducedSequences(i, j))+"-")
Next j
PrintN("")
Next i
R$ = Input()
Input()
;********************************************************************************************************************************************************************************************
PrintN("FIN du PROGRAMME ... SUITE = EXIT.")
PrintN(""):PrintN("")
Input()
;********************************************************************************************************************************************************************************************
FINPRG:
PrintN("FIN du PROGRAMME......")
CloseConsole()
End |
Partager