Picomite/PicoMiteVGA V5.07.05 release candidates

Author Message
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 3498
 Posted: 01:48pm 03 Nov 2022

@Peter,

When you find time, can you please explain how the index in an array is calculated.
The index is an integer, but it is not calculated using the INT(x) function in case X is a FLOAT ?

Example:
random dice rolls can be calculated using 1+RND()*6
if I use these as index in a array (1,000,000 rolls) I get following distribution

Option default integer
Dim distribution(7)

For i=1 To 1e6
Inc distribution(1+Rnd*6),1
Next i

For i=0 To 7
Print i, distribution(i)
Next i
End

0       0
1       83119
2       166639
3       166889
4       166590
5       166382
6       166897
7       83484

Only when I explicitly use the INT(x) function I get a correct distribution.

Dim distribution(7)

For i=1 To 1e6
Inc distribution(Int(1+Rnd*6)),1
Next i

For i=0 To 7
Print i, distribution(i)
Next i
End

0       0
1       166619
2       166640
3       166988
4       166171
5       166966
6       166616
7       0