fonction rand : comment fonctionne-t-elle vraiment?

Page 1 sur 4 1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Lun 9 Avr - 9:25

Bonjour,
je voudrais savoir si quelcun à une idée quel algorithme utilise la TI pour optenir les nombres pseudo-alléatoires affichés par rand?

Sandro

PS : on peut réinitialiser les nombres aléatoires en faisant 0 -> rand

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par maxence le Lun 9 Avr - 9:56

En effet on peut faire 0->rand.

En fait je ne connait pas l'algorithme uiliser par rand, mais un fois reinitialiser comme ci-dessus, il donne toujours les memes nombres ( le 1er c'est toujours .9435974025 et le 2eme .908318861)

Du coup je pense qu'elle utilise une variable sur laquelle elle effectue un calcul (difficile a savoir lequelle), affiche le resultat et le stocke dans la variable de base.

Si on fait ce fameux calcul a partir de 0 on obtient le 1er resultat vu ci-dessus, et si on re fait ce meme calcul a partir du 1er resultat, on obtient le 2eme.

Bon, c'est une hypothese, mais ca me parrait coherent...

edit: Mon hypothese semble se verifier...
en fait on peut stocker nimporte quel nombre dans rand, pas seulement 0.
et il se trouve que les 1er resultats obtenu apres avoir initialiser rand a 1 et a -1 sont identiques.

re edit desoler: comme je m'en doutais, randInt utilise rand, donc en initialisant rand, on initialise randInt

(apres avoir initialiser rand a zero)
4 premiers resultats du rand: .94 / .90 / .14 / .51
4 premiers resultats du randInt: 10 / 10 / 2 / 6

magique non ? Très Content


Dernière édition par maxence le Lun 9 Avr - 10:16, édité 1 fois

maxence
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-84+

TI-84+


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Lun 9 Avr - 10:10

Merci pour c'est quelques tests.
Qu'il s'agisse d'un calcul et non de pointeurs se prommenant à travers la mémoire me semble "prouvé" (sinon, on arait pas à chaque fois la même chose quand on initialise).

En revanche, pour trouver l'algorithme, ça risque d'être dur (on peut toujour tenter le coup avec la version décompilée de la ROM, mais c'est pas gagner (trouver le bon endroit puis comprendre le code)..
Sandro

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par linkakro le Lun 9 Avr - 12:56

Si on s'amuse à écrire rand->rand puis appuyer plusieurs fois sur entrer, on obtient un aléatoire quelconque puis toujours .9435974025.
Mais je ne sais pas si c'est entièrement calculatoire.

Je pense que la fonction est récurrente, c'est un des meilleurs moyens d'obtenir des résultats imprévisibles.

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par matrefeytontias le Lun 9 Avr - 13:34

Si cette fonction marche comme n'importe quelle autre fonction rand de tous les autres langages du monde, vous allez bien en ch*er pour trouver l'algorithme.

En fait, ça exécute des décalages et autres rotations sur une fréquence, c'est à dire la fréquence du processeur mesurée à l'instant où on appelle rand.

C'est pour ça que c'est quasi impossible de faire un générateur de nombres aléatoires sans aucun pattern prédéfini dans un langage trop haut niveau (en général c'est fait en ASM, pour la plupart des langages).

_________________
[Axe] [Vous devez être inscrit et connecté pour voir ce lien], aussi compatible 82 stats !

[Vous devez être inscrit et connecté pour voir ce lien]
[Vous devez être inscrit et connecté pour voir ce lien]

Spoiler:

matrefeytontias
Platinum 1
Platinum 1

Sexe : Masculin
Age : 19
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - Lua Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-83+.fr
  • - TI-Nspire CAS

TI-83+.fr


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Mar 10 Avr - 10:03

Merci, mais une question : comment la TI peut-elle mesurer la fréquence de son processeur sans disposer d'une horloge (ou dans le cas de la TI84+ d'une horloge basée sur cette fréquence). Il ne faudrait pas une horloge à quartz pour que cette méthode fonctionne?

Pour comparer, pourriez-vous faire 0 -> rand puis me donner les 7 premiers nombres obtenus par rand.

Moi c'est (sur TI84+SE (réelle) ; VTI avec rom de TI82stats.fr ; Wabbitému avec rom TI83+):
.9435974025
.908318861
.1466878292
.5147019505
.4058096418
.7338123112
.0439919875
(par ailleur, ça semble cohérent avec les nombres indiqués par maxence

et en faisant radint(1,10) , j'obtient aussi comme maxence la suite 10;10;2;6

Je crois donc que sur notre chère TI, on peut infirmer le rôle de la fréquence procésseur (sauf si quelcun optient des résultats différents).

Sandro

PS : par contre l'idée de rotations et de décalages ne me semble pas absurde, même si je pense qu'il s'agit soit d'une zone assez importante, soit qu'il y a un calcul en plus d'effectué.

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par maxence le Mar 10 Avr - 10:38

Je ne sais pas si tu avais remarqué, mais j'avais mit les resultats du rand et randInt car on constate que ceux du randOnt sont les meme que le rand mais multiplies.

Mais je ne pense pas non plus que dans le cas de nos ti ce soit la vittesse du processeur, sinon on obtiendrais pas toujours les memes resultats.

maxence
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-84+

TI-84+


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par Polymorph le Mar 10 Avr - 14:43

A mon avis, RandInt, c'est juste Rand multiplié par 10, arrondi à l'entier supérieur. (Simple hypothèse formulée à partir des résultats expérimentaux)

Polymorph
Argent 4
Argent 4

Sexe : Masculin
Age : 21
Messages : 54
Date d'inscription : 05/01/2012
Points Forum : 8
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr

TI-82 Stats.fr


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par maxence le Mar 10 Avr - 14:51

dans les cas precedents, c'etait randInt "1, 10", donc j pense plutot que c'est multiplier par le 2eme, arrondi a l'inferieur auquel on ajoute le 1er.

maxence
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-84+

TI-84+


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Mar 10 Avr - 20:58

à vérifier, mais il me semble que la formule "normale" pour optenir un entier alléatoire entre A et B soit : int(rand*(B-A))+A

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par linkakro le Mer 11 Avr - 15:07

Je trouve la même série de valeurs sur ma ti82statfr et ma ti84pocketfr.

Je constitue exactement le même calcul que toi, sandro.
Je dirais que c'est le plus logique, mais pas forcément celui de la calculatrice.

J'ai testé des listes de valeurs mais ne suis pas parvenu à trouver de calcul d'arrondit fiable à tous les coups.
Remplacer notre int par un round fonctionne pour la plupart des valeurs mais pas toutes.
round(rand(B-A),0)+A

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Jeu 12 Avr - 18:21

J'ai commencé à chercher, et j'ai trouvé la routine utilisé par ion, même si je n'ai aucune idée si elle est aussi utilisée par l'OS :

Code:
random:

push hl

push de

ld hl,(randData)

ld a,r

ld d,a

ld e,(hl)

add hl,de

add a,l

xor h

ld (randData),hl

sbc hl,hl

ld e,a

ld d,h

randomLoop:

add hl,de

djnz randomLoop

ld a,h

pop de

pop hl

ret



Mais je pense pas que cette routine coresponde, car "r" ne peut pas être prévue à l'avance (il est incrémenté à chaque istruction. De plus, "de" est également dépendant des instructions précédentes (même si ce coup là, il est possible que la fonction rand lui donne une valeur avant le coeur de la routine).



Sandro

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par mdr1 le Lun 16 Avr - 18:03

Ma TI-82 non stat donne également les mêmes résultats de rand après avoir fait 1→rand.
L'hypothèse du calcul complexe me semble très intéressante et me parait la plus probable.

Je sais plus qui a remarqué que rand(-1) = rand(1) (je note rand(x) la valeur de rand après avoir fait x→rand). Eh bien je constate que pour tout x, rand(-x) = rand(x).

Donc en fait la fonction est paire. C'est déjà un premier point.

Et en faisant un programme pour avoir une courbe représentative de la fonction, j'ai été étonné de voir qu'en fait elle est super simple. Si vous voulez voir vous aussi la courbe représentative, recopiez sur votre calculatrice le programme suivant :

Code:
:PlotsOff
:FnOff
:0→Ymin
:1→Ymax
:.1→Yscl
:For(A,Xmin,Xmax,ΔX
:A→rand
:Pt-On(A,rand
:End

J'ai fait exprès de ne pas définir la fenêtre d'affichage. C'est à vous de choisir où représenter la fonction. Il suffit de choisir l'intervalle avec la touche WINDOW ou FENETRE puis d'exécuter le programme. J'ai quand même défini les bornes de Y puisque on a toujours rand compris entre 0 et 1.

mdr1
Or 1
Or 1

Sexe : Masculin
Age : 26
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Lun 16 Avr - 18:28

c'est vrai que le résulatat est intéréssent, non seulement, la partie décimale du nombre est suprimée, mais en plus on dirait drolement des modulo

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par linkakro le Lun 16 Avr - 18:35

Le plus efficace est de choisir Xmin=0 et Xmax=94 pour avoir un pixel par abscisse.
Mais je ne vois toujours pas de quelle fonction il s'agit.
J'ai cherché un modulo mais il est bien caché...

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par mdr1 le Lun 16 Avr - 19:03

@linkakro : justement, ce n'est pas efficace car du coup on n'a que les images d'entiers. Sachant que l'aléatoire de rand se base sur la valeur précédente, qui est un décimal (compris entre 0 et 1).

D'ailleurs, si on fait Xmax = 10, on dirait une fonction en escalier. Mais c'est forcément trompeur : essayez Xmax = 1, pour avoir la première marche. Ce n'est pas possible que rand soit constante entre 0 et 1.

mdr1
Or 1
Or 1

Sexe : Masculin
Age : 26
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Lun 16 Avr - 19:12

c'est pourtant le cas, essaye donc.



EDIT : en exécutant le code suivant, j'obtient une série de .9435974025 .908318861 :
Code:
For(A,0,1,E-3        //le E des puissances de 10
A -> rand
Disp rand,rand
For(B,1,E3
End
End

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par linkakro le Lun 16 Avr - 19:44

@sandro : Je crois que tu subis la première propriété que j'ai énoncée dans ce sujet.

@mdr1 : Pardon, j'ai effectué des tracés hors programme pour conjecturer l'évolution alors que ton programme recherche la valeur calculée pour tout antécédent.
Dans ton cas l'abscisse a bien une inflence.
Je vais d'ailleurs le tester de ce pas.

PS: j'ai voulu manipuler des listes pour effectuer des comparaisons, mais l'écran a inversé ses couleurs et ça a freeze, puis ramcleared. Peur Mais pas moyen de produire à nouveau ce bug. Confus

EDIT : j'ai modélisé ceci :
sur ]-1;1[, rand = 0.94359740249213
sur ]-2;-1]U[1;2[ , rand = 0.74556077277122
Puis il faut soustraire 0.25443922769332 modulo 1 chaque fois qu'on décale l'intervalle.
Ainsi sur ]-k-1;-k]U[k;k+1[ avec k entier naturel non nul,
rand = modulo(.74556077277122-(k-1)*0.25443922769332,1) = .74556077277122-(k-1)*0.25443922769332-int(.74556077277122-(k-1)*0.25443922769332)

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Mar 17 Avr - 11:34

ça colle pas mal, moi j'ai testé avec excel, et j'ai trouvé (avec k entier entre 1 et 94) :
rand*10^14 = 74556077242451,1000000000000000x + 25410,1578967351000000 [10^14]
R² = 0,9999999999999990

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par linkakro le Mar 17 Avr - 19:12

J'ai poussé plus loin mon observation et j'ai une erreur de 1.2*10^-8 pour k=100.
Hélas j'ignore l'origine de l'erreur, si elle est calculatoire ou si elle provient de ma conjecture.

J'ai vérifié avec succès que les palier sont bien des paliers avec des listes de 500 termes parfaitement constants d'après la fonction DeltaListe.

Hélas la fonction n'est manifestement pas identique entre l'initialisation et l'évolution car ma conjecture possède un palier entre 0 et 1.

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Mar 17 Avr - 19:40

j'ai peut-être une ide d'où pourrait venir l'erreur : justement des erreures d'arrondis de la TI. Mais pour vérifier ça, je ne vois pas trop comment faire, et en plus, 1.2*10^-8, c'est beaucoup (à moins que la fonction ne sot définie par récurence, d'où un cumul des erreures.

Sandro
PS : t'aurais pas un logiciel qui transforme la rom en fichier text par hasard, car les débugueures asm ne sont pas très pratiques pour les grands codes.

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par linkakro le Mar 17 Avr - 22:31

1.2*10^8 d'erreur à k=100 et une condition initiale en k=1, cela donne environ 10^-10 d'erreur à chaque rang en moyenne et sur le coefficient.
J'ai utilisé des variables pour mesurer des valeurs aux rangs 1 et 2, avec donc une précision d'au moins 10^-13 sur ces conditions initiales.

Pour améliorer la conjecture, je devrais calculer la variation entre rand(1) et une autre valeur éloignée (et en déduire la pente), mais le modulo complique la tâche.
L'antécédent du modulo, lui, est la droite prolongeant la première portion de courbe.
Je peux tenir compte du cycle modulo pour déduire une pseudo ordonnée coincidant avec la première portion de courbe.
J'obtien une différence au niveau du coefficient de l'ordre de 10^-10 avec la mesure de rand(1), rand(41), et 10 cycles modulos.

Maintenant il me reste à comparer le nouveau modèle à la courbe mais pas ce soir. Dodo.

---
Je ne suis pas équipé et je ne maîtrise pas le domaine de l'asm, rom etc. désolé

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par mdr1 le Mer 18 Avr - 18:02

On a forcément dû se tromper quelque part. À ma grande surprise, rand semble être constante sur [0;1].

Mais on a dit plus haut que chaque valeur de rand se basait sur la valeur précédemment obtenue. Le problème, c'est que chaque valeur obtenue est comprise entre 0 et 1. Donc la valeur suivante serait la même, quelque soit la précédente. Donc toutes les valeurs de rand seraient les mêmes !

Raisonnement par l'absurde : rand ne se base pas uniquement (voir pas du tout) sur l'ancienne valeur.

mdr1
Or 1
Or 1

Sexe : Masculin
Age : 26
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-82
  • - TI-83+
  • - TI-84 Pocket.fr
  • - TI-Nspire CX

TI-84 Pocket.fr


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par sandro le Mer 18 Avr - 18:23

Je pense au contraire que rand ne se base que sur la valeur précédente, mais que la fonction d'initialisation n'est pas la fonction de récurence

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par linkakro le Mer 18 Avr - 18:58

Linkakro Mar 17 Avr 21:12 a écrit:Hélas la fonction n'est manifestement pas identique entre l'initialisation et l'évolution car ma conjecture possède un palier entre 0 et 1.
mdr1 Mer 18 Avr 20:02 a écrit:Mais on a dit plus haut que chaque valeur de rand se basait sur la valeur précédemment obtenue. Le problème, c'est que chaque valeur obtenue est comprise entre 0 et 1. Donc la valeur suivante serait la même, quelque soit la précédente. Donc toutes les valeurs de rand seraient les mêmes !
sandro 18 Avr 20:23 a écrit:Je pense au contraire que rand ne se base que sur la valeur précédente, mais que la fonction d'initialisation n'est pas la fonction de récurence
Nous sommes d'accord.
Nous avons au moins vérifié que la première hypothèse n'était pas idéale.

Nous avons déjà conjecturé le comportement de l'initialisation.
possibilités pour l'évolution :
-l'évolution n'est pas du tout récurrente
-l'évolution est bien récurrente mais différente de l'initialisation

Inconvénient probable d'une récurrence classique mathématique :
si la suite est convergente, alors on aurait pas de bon aléatoire après un certain nombre d'itérations.
La suite ne peut pas être divergente car elle est bornée par 0 et 1.
Elle devrait donc n'être ni convergente ni divergente, et peut-être contenir des tests.

Autant dire quelle doit être difficile à trouver. En tout cas je n'ai rien repéré.

linkakro
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

Re: fonction rand : comment fonctionne-t-elle vraiment?

Message par Contenu sponsorisé Aujourd'hui à 16:41


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 4 1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum