Page 1 sur 4

Rand and Co

Message non luPosté: 13 Oct 2018, 22:36
de kinkazma
Salut à tous aujourd'hui je m'amuse à tester la qualité de l'aléatoire sur ma calculatrice.
Ma méthode pour mieux connaître ma calculatrice est de faire des machins devant et d'apprendre ses outils pour se faire.
Or il m'en manque.
C'est là que je vous demande de m'aider justement ! ?

Donc pourriez vous m'expliquer comment en TI-Basic je peux faire un nombre aléatoire entre "a" et "b" ici ce sera 0 et 100/1000 ou plus.
(Je l'ai déjà fait avec un While, mais le problème c'est que mes nombres sont entre guillemets et pour en faire la moyenne c'est pas top... par contre ça me donne des proportions parfois étranges quand je fais un résumé graphique dans le tableur et listes pour une population de 1000 nombre, j'ai 2.4% de 33 et 0.2% de 9 alors que normalement je devrais avoir environ 1% de chacun si je fais un random de 0 à 100 mais là j'ai des écarts de presque 2% c'est énorme ?!)

Bref je veux savoir comment virer mes guillemets.
Et ou...
J'aimerais savoir comment en faire une liste, et comment faire la somme des nombres et chiffres de ma liste ! (Pour ensuite en faire la moyenne qui devrait tourner autour de 50 si je tire des nombres entre 0 et 100)
Mais j'aimerais aussi connaître la proportion de chacuns.

Je vous remercie de votre attention, c'est sympa d'avoir toute cette aide, alors merci ?

Re: Rand and Co

Message non luPosté: 14 Oct 2018, 10:46
de Hamza.S
kinkazma a écrit:mais le problème c'est que mes nombres sont entre guillemets et pour en faire la moyenne c'est pas top
...
Bref je veux savoir comment virer mes guillemets.

il y a une fonction expr() qui permet de passer d'une chaîne de caractères à une expression, dans ton cas un nombre. pour la moyenne, tu as une fonction mean() si tu passes à une liste.

pourriez vous m'expliquer comment en TI-Basic je peux faire un nombre aléatoire entre "a" et "b" ici ce sera 0 et 100/1000 ou plus.

elle a déjà des fonctions pour les nombres aléatoires, tu penses apporter quelque chose de nouveau par rapport à ce qui existe ?

J'aimerais savoir comment en faire une liste, et comment faire la somme des nombres et chiffres de ma liste !

tout dépend de comment tu procèdes pour faire tes calculs, pour faire la somme d'une liste tu as une fonction qui le fait.

pour mieux connaitre ta machine, lis le guide de la calculatrice : archives_voir.php?id=12600

Re: Rand and Co

Message non luPosté: 18 Oct 2018, 18:02
de kinkazma
Oh merci ! J'ai terminé le programme, et je vais ajouter ce que vous m'avez conseillé.
Je pense pouvoir y ajouter une certaine simplicité.
En effet mon petit programme RandBin(
Fonctionne de cette façon :
RandBin(a,b,c)
a étant le nombre minimum et b étant le maximum.
c est le sommet de la courbe en cloche. En général c'est 0.5 (pour avoir plus grande probabilité à la médiane entre mon max et min.

L'autre est juste pour créer rapidement des échantillons pour le tableur. Celui pour lequel je vous ai demandé conseil.

Re: Rand and Co

Message non luPosté: 18 Oct 2018, 18:19
de kinkazma
Le problème que je rencontre c'est que je peux pas mettre :
expr(g)->g
Du coup je ne peux pas l'utiliser ?
Parce que dans mon tableur chaque chose est mise dans une case différente. Et je fais un copier coller des résultats de mon programme. Du coup c'est pas possible de l'intégrer au programme... il n'y a pas une fonction qui fasse passer une expression entre guillemets dans une variable en chiffre/nombre ? ?

Re: Rand and Co

Message non luPosté: 18 Oct 2018, 18:38
de Hamza.S
comment ça tu ne peux pas faire expr(g)→g ?

Re: Rand and Co

Message non luPosté: 18 Oct 2018, 22:37
de kinkazma
Oui ça me dit subitement :
Erreur l'argument doit être une chaîne de caractère.

Randin(a,b,c,d)=
f:=0
While f<c
RandInt(a,b)->g
If d=1 Then
Expr(g)->g
EndIf
Disp " ",g
f+1->f
Endwhile

Re: Rand and Co

Message non luPosté: 18 Oct 2018, 22:41
de kinkazma
À mon avi ça vient du Disp cette histoire. Il ne renvoi pas un chiffre mais un caractère ?
Disp " ",g

Re: Rand and Co

Message non luPosté: 18 Oct 2018, 22:45
de kinkazma
Je dois l'écrire :
Disp g

Parfois je me sens con... mais je me rappel que les profs nous apprennent pas comment fonctionnent les choses mais comment on s'en sert dans un cas bien précis et restreint.
Et je me dis que c'est mal fichu...

Bref je me sert d'un machin comme on me l'a appris et mal.
Alors je vous remercie pour votre aide et je me rend compte que je devrais apprendre par moi-même plutôt qu'avec un prof qui ne connaît pas ma calculatrice.
Bon en tout cas j'ai appris quelque chose d'utile !!! ✌️

Re: Rand and Co

Message non luPosté: 19 Oct 2018, 06:08
de randlog
expr( prend en argument un chaîne et renvoie un nombre sauf grosse erreur de ma par, donc te faut une chaîne entre parenthèse, or RandInt(a,b) est un nombre non ? :thinking:

Après effectivement Disp va renvoyer un caractère, mais c'est pas gênant si tu as stocké ta variable entre temps, qui elle est bien un nombre...

(note au passage, si d=1, alors c'est un nombre donc expr(g) n'a pas de sens.)

Re: Rand and Co

Message non luPosté: 19 Oct 2018, 09:24
de kinkazma
En effet RandInt(a,b) est bien un nombre et mon erreur venait de ma façon d'écrire Disp " ",g qui me donne si g:=9
"9"
Mais en écrivant Disp g j'obtiens pour g:=9
9

Mais le problème, c'est que votre idée est valable pour un résultat, mais si je créé un échantillon de 2500 résultats, le problème est que les 2499 premières valeurs de la variable g sont perdues.
Et je les veux.
D'où le contrôle C/ contrôle V dans mon tableur.

En tout cas merci à vous tous pour vos conseils et réponses.

PROBLÈME RÉGLÉ.
(Si vous avez d'autres choses à me conseiller, je vous en prie.)