subtilité de rand VG5000
Modérateurs : Papy.G, fneck, Carl
Re: subtilité de rand VG5000
Tout comme l'explication de ON X GOTO/GOSUB...
Si X=0 X<1 ou X>nb argument, la commande est ignoré.
C'est exactement ce qui est marqué sur le manuel… mais…
Enfin, bref… ils n'auraient pas le faire en anglais, et le traduire en voulant tromper les dyslexiques Français !
C'est petit et mesquin...
Si X=0 X<1 ou X>nb argument, la commande est ignoré.
C'est exactement ce qui est marqué sur le manuel… mais…
Enfin, bref… ils n'auraient pas le faire en anglais, et le traduire en voulant tromper les dyslexiques Français !
C'est petit et mesquin...
Re: subtilité de rand VG5000
Bon, qui refait une version du bouquin ? .
- Carl
- Modérateur
- Messages : 13300
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: subtilité de rand VG5000
De mémoire, clefs pour VG5000 contient des erreurs...
Carl
Carl
Re: subtilité de rand VG5000
J'ai eu un zero dans mes essais hier.Xavier_ a écrit : ↑07 mai 2020 01:58Pareil pour Zéro !Code : Tout sélectionner
10 FOR i=1 TO 999999 20 a=RND(1):IF a=0 THEN PRINT i:END 30 NEXT I
Donc, "compris entre 0 et 1"... ils sont dans les clous.
(exclus 0 et 1 pas compris dedans…)
[comme Carl il a déjà dit]
- Mokona
- Messages : 1043
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: subtilité de rand VG5000
Oui, Clés pour VG5000µ contient des erreurs. C'est en large partie un copier/coller (traduit) des documentations techniques du VG5000µ et du Z80, mais avec des petites choses qui ont été traduites littéralement sans être comprises.
(Un de ces jours, je terminerai peut-être mon boulot de remise à plat de tout ça... un de ces jours... et il y aura des erreurs dedans, mais ça pourra être corrigé)
(Un de ces jours, je terminerai peut-être mon boulot de remise à plat de tout ça... un de ces jours... et il y aura des erreurs dedans, mais ça pourra être corrigé)
Re: subtilité de rand VG5000
Ligne 218 c'est pour fixer au hasard la longueur (en temps) du mode WAITING au démarrage du LEVEL. Pour ne pas que tous les ennemis se mettent en route tout de suite et en même temps. Je me sert d'un RND pour fixer cela. EL(EN)=INT(RND(1)*5)+5 qui donne une valeur entre 5 et 9 (nombre de cycle dans la boucle, correspondant normalement au double de mouvement 10 à 18 pour le héro).
A chaque fin de mode pour un ennemi, on change de mode au hasard pour une durée prise au hasard:
894 EL(N)=INT(RND(1)*10)+10:RETURN
Entre 10 et 19 cycles.
Note que on peut avoir un ennemi qui change de mode de poursuite et se retrouve au hasard dans le même mode que le mode précédent.
- Carl
- Modérateur
- Messages : 13300
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: subtilité de rand VG5000
sur 900 000 tirages, voici les valeurs les plus basses...pas un seul zéro.
Carl
Re: subtilité de rand VG5000
Encore un truc bête…
INT(RND(1)) donnera TOUJOURS : 0
INT (0.0000001)=0
INT (0.9999999)=0
Donc, pour RND, comme on a jamais 1... on a toujours Zéro !
Il n'y a donc pas d'arrondis mais une valeur entière stricte...
INT(RND(1)) donnera TOUJOURS : 0
INT (0.0000001)=0
INT (0.9999999)=0
Donc, pour RND, comme on a jamais 1... on a toujours Zéro !
Il n'y a donc pas d'arrondis mais une valeur entière stricte...
-
- Messages : 7988
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: subtilité de rand VG5000
Avec autant de tirages, comme je suppose que l'état interne du générateur doit avoir au max 16bits, tu as du certainement rencontrer le cycle plusieurs fois (13 fois à la louche). Par contre si le générateur est sur 24bits, il faudrait itérer sur un peu plus de 16M pour parcourir tout l'espace d'état et voir si 0 ou 1 sortent.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
- Carl
- Modérateur
- Messages : 13300
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: subtilité de rand VG5000
j'ai relancé, le tirage est actuellement à 1.28 million
toujours pas de 0 ou 1
toujours pas de 0 ou 1
Re: subtilité de rand VG5000
Hello,
Effectivement, tu as raison, j'ai fait tourner sur plusieurs millions de tirages, je n'ai pas eu de 0 ni de 1.
Minimum: 0.000006 (6.83009 E-06)
Maximum: 0.999981
Je pense que j'ai du quiché en faisant mon print L après avoir stoppé le programme en mon trompant de variable pour avoir 0.
Effectivement, tu as raison, j'ai fait tourner sur plusieurs millions de tirages, je n'ai pas eu de 0 ni de 1.
Minimum: 0.000006 (6.83009 E-06)
Maximum: 0.999981
Je pense que j'ai du quiché en faisant mon print L après avoir stoppé le programme en mon trompant de variable pour avoir 0.
- Mokona
- Messages : 1043
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: subtilité de rand VG5000
En regardant de plus prêt ce que l'instruction fait : le nombre en sortie a un exposant fixé à $80. Cela ne peut donc jamais être un zéro.
La seule valeur qui se transcrit à zéro est lorsque l'exposant est $00 (valeur spécifique réservée).
La seule valeur qui se transcrit à zéro est lorsque l'exposant est $00 (valeur spécifique réservée).
Re: subtilité de rand VG5000
@Markerror:
Non, sérieusement, ce Basic est très subtile et piégeux, même s'il est estampillé Microsoft.
Bon, RND c'est fait, on passe à quoi ?Bon, qui refait une version du bouquin ?
.
Non, sérieusement, ce Basic est très subtile et piégeux, même s'il est estampillé Microsoft.
- Mokona
- Messages : 1043
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: subtilité de rand VG5000
Voilà !
Ce n'est pas un montage... mais une insertion de bonnes valeurs au bon moment avec un debugeur... Et je pense pouvoir montrer que ces valeurs ne peuvent jamais arriver. Pour 1, c'est absolument certain. Pour 0... je dois faire une dernière vérification, mais j'en suis quasi absolument certain.
Ce n'est pas un montage... mais une insertion de bonnes valeurs au bon moment avec un debugeur... Et je pense pouvoir montrer que ces valeurs ne peuvent jamais arriver. Pour 1, c'est absolument certain. Pour 0... je dois faire une dernière vérification, mais j'en suis quasi absolument certain.
Re: subtilité de rand VG5000
Pas de 0 pas de 1.
J'ai arreté le test, le nombre de tirage me semble suffisant (ca avait convergé assez rapidement).