| Auteur |
Nombres aleatoires |
|
|
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 17-05-2008 à 18:10  
Bonjour
Je me sers à maintes reprises de la fonction Ran# (=random) et je me suis demandé comment elle marchait... Après avoir creusé un peu le problème je me suis aperçu qu'il s'agissait en fait d'algorithmes assez complexes, qui partaient d'une 'graine'. Or sur PC, cette fonction a besoin du temps pour marcher...
Comment bigre Ran# peut-il marcher alors que la CASIO ne gère pas le temps ?
 |
 |
Ilae Administrateur

 Messages: 3000 Calculatrice : Graph 65 | Message posté: 17-05-2008 à 19:10  
Oui il est vrai que c'est une fonction assez dur à faire. J'avais entendu dire que pour un ordinateur c'était ce qu'il y avait de plus difficile et que au final ce n'était jamais vraiment tiré au hasard...
Ce qui est impressionnant je trouve c'est qu'elle tire un nombre entre 0 et 1 (et non entre 2 autres chiffres choisis) (en PHP c'est entre 2 chiffres mais à mona vis l'algorithme est similaire. Sous excel c'est entre 0 et 1 aussi (ALEA()).
 |
 |
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 17-05-2008 à 19:16  
Oui en C on fait ça entre deux chiffres avec la fonction
srand(time); // Pour initialiser
rand (...)
Mais la calculatrice m'impressionne par le fait qu'elle trouve un résultat différent à chaque fois.
Il faudrait donc qu'elle trouve un autre paramètre stupide, peut-être fait-elle "en fond" un For en boucle et elle prendrait la valeur à ce moment-là pour remplacer une horloge ?
 |
 |
Rastabeuher Administrateur

 Messages: 912 Calculatrice : ClassPad 300 | Message posté: 18-05-2008 à 00:27  
C'est vrai que c'est une question intéressante...
J'avais fait des tests sur des dizaines de milliers de rand#, et c'était plutôt pas mal réparti (j'avais classé les résultats en 10 catégories il me semble, de 0.1 en 0.1).
Sans avoir d'horloge, la gestion d'une certaine quantité de temps est possible: la preuve, elle s'éteint toute seule à partir de 6 minutes...
Sinon, peut-être qu'un des paramètres de l'algorithme est l'état de certaines puces dans la machine.
Si quelqu'un à une idée sûre...
 |
 |
PierrotLL Administrateur

 Messages: 791 Calculatrice : Graph 85 | Message posté: 18-05-2008 à 12:19  
Alors, tout processeur a un petit quartz intégré dans lequel il envoie un petit courant qui le fait vibrer avec une grande précision. C'est comme ça qu'une machine peut conserver l'heure. Et la graph 35+ n'est pas une exception.
Pour le tirage de nombres pseudo-aléatoire, on utilise une longue liste de valeurs, et l'heure précise a laquelle on initialise la fonction avec srand va déterminer a quel emplacement de cette liste on va commencer, le nombre d'éléments de la liste qu'on va sauter a chaque tirage, la valeur par laquelle on va multiplier puis calculer un modulo sur la valeur de la liste, etc. Ce qui, au final, nous donne quelque chose d'imprévisible.
 |
 |
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 18-05-2008 à 16:37  
D'accord mais... si pourquoi cette de CASIO ne gère pas le temps ?
Si elle est capable d'être précise au moins à 1/5 seconde près (et c'est indispensable pour Ran# il me semble) pourquoi on a pas droit à une espèce d'horloge ou au pire au moins à l'équivalent des fonctions
SDL_GetTicks (); // Donne le temps à partir d'un repère
SDL_Delay (temps); // Mets en pause un certan temps
en C !!! si cette puce comme tu le dis est bien existante, elle pourrait nous permettre de gérer le temps et c'est pas utile qu'aux jeux...
Pourquoi ?
Y aurait-il une CASIO denriers modèles qui fasse ça et CASIO aurait enlevé la fonction ?
Edit :l es posts à minuit 1/2 c'est peut-être pas idéal pour avoir les idées claires
 |
 |
veb Utilisateur Graph

 Messages: 31 Calculatrice : Graph 100+ | Message posté: 18-05-2008 à 17:06  
Les calto ont une horloge intégré, et même une date.
Sur g100, l'heure est dans la ram à 0x1F, quelque chose comme ça,
et les certains ports matériels changent au rythme des secondes, minutes,ect
ça doit etre de même sur les autres graph.
|
 |
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 18-05-2008 à 17:08  
Oui comme l'a dit PierrotLL la G35+ se met en pause au bout de 6 minutes et 1 heure dans le cas d'une boucle
 |
 |
dafp Utilisateur Graph

 Messages: 417 Calculatrice : Graph 25+ | Message posté: 18-05-2008 à 22:50  
ouahhhhhh ! je savais pas ça ! j'avais remarquer quand on n'y touché pas, mais j'avais réagi, et je savais pas pour les boucles ...
 |
 |
Rastabeuher Administrateur

 Messages: 912 Calculatrice : ClassPad 300 | Message posté: 18-05-2008 à 22:51  
C'est moi qui l'ai dit ça.
Et j'ai déja fait tourner une boucle pendant 4h, la caltos s'est pas arrêté.
 |
 |
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 19-05-2008 à 16:52  
Quote:
| Déjà fait tourner une boucle pendant quatre heures |
|
Direction le supermarché on achète des piles
Le manuel marque qu'au bout d'une heure sans commande, la calculatrice s'arrête (je n'ai pas testé).
 |
 |
PierrotLL Administrateur

 Messages: 791 Calculatrice : Graph 85 | Message posté: 19-05-2008 à 19:41  
Oui, avec une simple boucle, la calculatrice ne s'éteint que quand les piles sont a plat.
 |
 |
Rastabeuher Administrateur

 Messages: 912 Calculatrice : ClassPad 300 | Message posté: 19-05-2008 à 23:31  
Oui, et j'imagine que ça doit pas être très bon parce que ça fait sauter le message Low Battery, éventuellement on peut perdre des données non?
 |
 |
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 20-05-2008 à 18:20  
Non, je pense que la pile de secours fera son boulot, et que la calculatrice s'éteindra automatiquement.
Z'avez pas répondu à ma question : pourquoi les G < 100 ne proposent-elles pas une gestion du temps ?
 |
 |
PierrotLL Administrateur

 Messages: 791 Calculatrice : Graph 85 | Message posté: 20-05-2008 à 22:27  
Envoie un mail a Casio, ils te répondront peut etre
Tu sais, c'est dans la création du langage, c'est comme ça, ils ont estimé que ce ne serait pas utile.
Et pourquoi tu dis "<100" ? Il est parfaitement impossible d'avoir l'heure dans un programme basic sur une graph 100 comme sur une 85
 |
 |
veb Utilisateur Graph

 Messages: 31 Calculatrice : Graph 100+ | Message posté: 21-05-2008 à 12:35  
Eh oui, mais on peut en C.
|
 |
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 21-05-2008 à 15:29  
Et alors ?
Ca va pas nous arranger .
"Pas estimé ça utile"
Non mais j'hallucine, il y a plein de fonctions dans le menu comptable ou list qui servent jamais à rien et ils ont pas trouvé l'utilité de mettre le TEMPS ???
Faut que je contacte leurs assistants-gestion
Quote:
| "Peut-être qu'ils te répondront" |
|
Peut-être que mes arrière-petit-fils recevront un message dans la fin de leur vie ?
 |
 |
Alexis Webmaster

 Messages: 833 Calculatrice : Graph 35+ | Message posté: 21-05-2008 à 19:19  
c'est pas la seule fonction qui manque
 |
 |
dunedune Programmeur

 Messages: 263 Calculatrice : Graph 35+ | Message posté: 22-05-2008 à 11:17  
Ok y a des trucs comme modulo assez utile, mais le temps
Y a pas un moyen de faire du bricolage (comme Blues 35) ?
 |
 |