Poster un nouveau sujet Poster une réponse Page: 1,      >>
J'ai besoin de vous tous !!
Auteur Message
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 29 Nov 2010, 11:35   Citer 

Salut à tous, J'ai besoin de vous pour résoudre un problème de taille ! glasses.gif
Voilà je suis sur le point de terminer un prgm mais il me manque une suite de
commande des plus essentiel... cry.gif
Je garde le programme secret, si je le finit, il sera publié !
J'en ai trouver une mais elle est très longue et relève du casse tête,
elle ralentit par conséquent méchamment le prgm... evil.gif
Voici le défit:
Trouver une suite de commande la plus courte et la plus simple qu'il soit,
générant de façon homogène et aléatoire les 4 résultats suivant:

(A=1 et B=0) ou (A=-1 et B=0) ou (A=0 et B=1) ou (A=0 et B=-1)

Si le résultat A=0 et B=0 doit apparaître, ce n'est pas trop grave car
on peut répéter l’algorithme et trouver l'un de c'est 4 résultats... ahh.gif

Les résultat doivent être stoker dans 2 variables comme ici et les probabilités doivent impérativement être égal pour chacun des résultats...

Ça peut paraître simple pour certains, perso moi je ne trouve rien qui me conviens. Alors à vos neurones et poster moi vos idées !
Toutes mes félicitation à celui ou celle qui trouvera ! bigmouth.gif

Merci d’avance... Louis davin. glasses.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Lun 29 Nov 2010, 12:27   Citer 


Code
Lbl 0
Int rand(2->A
Int rand(2->B
If A+B=0: Goto 0



Ça te suffit pas?

Sangohan38

 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 29 Nov 2010, 13:06   Citer 

Euh,super... Ça donne quoi en Stat.fr ? happy.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 29 Nov 2010, 13:10   Citer 

A oui fichtre, C'est vrai qu'elle question !
Il y à le lien sous ton message. extraterre.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 29 Nov 2010, 13:17   Citer 

C'est bien ça n'es pas:
ent(NbrAléat(2))-)A et pareil pour B.
Moi ça me donne 02 02 02 02 02... (A=0;B=2). cry.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
metallica



Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
Posté le : Lun 29 Nov 2010, 19:06   Citer 

ça donne plutôt:

Code
entaleat(-1,1-)A
If non(A
entaleat(-1,1-)B



----------------------

Tutoriel sur l'Axe Parser !
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Lun 29 Nov 2010, 20:40   Citer 

Moi je suis un vieux de la vielle qui programme encore comme sous 82 non STATS donc c'est plutôt int rand(2+1->A.
J'ai voulu essayé de simplifier mais visiblement ça marche pas.

Sangohan38

 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mar 30 Nov 2010, 11:45   Citer 

Ça ne donne toujours pas les bons résultats:
j'ai:
0 -1
-1 -1
1 -1
0 0
0 -1
1 -1
0 1

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 30 Nov 2010, 18:18   Citer 

Je trouve celui de Metallica presque parfait.
Mais je ne sais pas si les probabilités sont équivalentes car si A est nul, la valeur de B dépend de la valeur précédente de B. De plus B risque d'avoir n'importe quelle valeur, et l'initialiser risque de biaiser l'équiprobabilité.

Celui de Sangohan ne fait pas de négatif, mais sa démarche me convient bien.


Code
Lbl 0
entaléat(-1,1)->A       // Int (rand3)-1->A
entaléat(-1,1)->B
If A+B=0
Goto 0



PS: biaiser n'est pas une coquille (faute de frappe).

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mar 30 Nov 2010, 19:01   Citer 

Je viens de remarquer à l'instant qu'on peut encore raccourcir le code en mettant une boucle conditionnelle:


While A+B=0
entaléat(0,1->A // Int (rand3)-1->A
entaléat(0,1->B
End

Par contre ça nécessite que A et B ne soient pas égales à 0.

Sangohan38

 Adresse email Haut de page Bas de page 
 
metallica



Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
Posté le : Mar 30 Nov 2010, 19:37   Citer 

Sans faire de boucle:

Code
entaleat(-1,1-)A
EffVar B
If non(A
entaleat(-1,1-)B



----------------------

Tutoriel sur l'Axe Parser !
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 30 Nov 2010, 20:03   Citer 

Metallica : il y a toujours une petite question de probabilité, mais la cohérence est assurée.

EDIT= L'aléat de B risque de générer un 0 même si A=0

Sangohan38 : utilise une boucle Repeat, elle ne fait pas de test à l'entrée.

Code
Repeat A+B
entaléat(-1,1->A // Int (rand3)-1->A
entaléat(-1,1->B
End



EDIT= Sangohan38 persiste dans l'omission des négatifs. Je ne m'en étais pas rendu compte, et ma re-modification contenait donc cette erreur.
J'édite tout de suite le code.

EDIT= Mes solutions de boucles sont fausses :
-Les A+B de sangohan sont justes car il omet les négatifs. (donc autre problème)
-Mes A+B ne suffisent plus car je traîte les négatifs.
Il y a deux solutions de comprommis. J'en développerai au moins une.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mer 01 Déc 2010, 11:12   Citer 

Bon, sa va vous donner de mauvaises idées etvous aurez tantence à copier sur moi,(vous n'y pouvait rien le cerveau une fois qu'il à vu une solution il a la flème d'en trouver une autre...), mais tanpis je vousmontre la mienne, nan nan pas c'elle que tupensse ! (Cà aussi c'est le cerveau...) crazy.gif
Je parle de la solution, qui est, là voici:


Code
:Lbl 0
:If EntAléat(0,1)=1
:Then
:EntAléat(-1,1)-)A:If A=0:EntAléat(-1,1)-)B
:Else
:EntAléat(-1,1)-)B:If B=0:EntAléat(-1,1)-)A
:End
:If A+B=0:Goto 0
:Disp A,B



But like I'say you "Fichtre !".
Mais comme je vous le disez, c'est bien tros long et mon prgm doit être plutôt veloce pour fonctionner correctement... evil.gif

Je compte sur vous tous pour trouver et merci pour toutes vos idées... glasses.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mer 01 Déc 2010, 11:18   Citer 

J'ai trouver plus court :

Code
:entAléat(-1,1)-)A
:If A=0:Then
:If entAléat(0,1)=1:Then:-non(A)-)B:Else:non(A)-)B:End
:Else
:non(A)-)B:End
:Disp A,B



----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mer 01 Déc 2010, 11:20   Citer 

Encore plus court !

Code
:entAléat(-1,1)-)A
:If A=1 et entAléat(0,1)=1:Then:-non(A)-)B:Else:non(A)-)B:End
:Disp A,B



----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mer 01 Déc 2010, 11:32   Citer 

Re plus court ! bigmouth.gif
Mais là je ne sais pas si c'est toujours équiprobable.

Code
:entAléat(-1,1)-)A
:If entAléat(0,1)=1:Then:-non(A)-)B:Else:non(A)-)B:End
:Disp A,B



PS: Es'que si on laisse "A=0 et" le prgm ne lira pas la reste
de l’instruction lorsque A=0 et que par conséquent il irait plus vite ??? crazy.gif

J'ai tester toutes vos propositions, une en particulier me semble satisfaisante
et me semble être assez courte et rapide pour ce que je souhaite faire... happy.gif
Je panse qu'on en tient le bout ! bigmouth.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 01 Déc 2010, 18:12   Citer 

Je n'ai pas compris ta question. minied.gif crazy.gif
---
Quel code t'a le mieux convenu ?

---
J'ai apporté de grosses corrections à mon dernier message
Je résume et corrige ce que j'avais commenté.

Metallica : B risquait d'être nul même avec A=0
Je doute toujours de l'équiprobabilité.
Code
entaléat(-1,1)->A
EffVar B
If non(A
2entaléat(0,1)-1->B



sangohan et moi-même : Soit il n'y avait pas de négatif, soit la boucle était faussée par les négatifs (-1+1=0).

Code
Repeat abs(A)+abs(B)=1
entaléat(-1,1)->A
entaléat(-1,1)->B
End



Edit: j'ai ajoûté =1 pour me rapprocher du cahier des charges.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
metallica



Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
Posté le : Jeu 02 Déc 2010, 17:25   Citer 


Citer : linkakro

Code
entaléat(-1,1)->A
EffVar B
If non(A
[b]2entaléat(0,1)-1->B[/b]




A la place de la dernière phrase, il me semble avoir écrit:

Code
entaleat(-1,1-)B



Sinon, pour l"équiprobalité parfaite:

Code
entaleat(0,1
If Rep:Then
entaleat(-1,1-)A
Effvar B
If non(A
entaleat(-1,1-)B
Else
entaleat(-1,1-)B
Effvar A
If non(B
entaleat(-1,1-)A
End



----------------------

Tutoriel sur l'Axe Parser !
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 02 Déc 2010, 19:41   Citer 

J'ai corrigé ton précédent code, et c'était précisé un peu au dessus.
Si je ne me suis pas trompé dans la correction et le constat, il y avait un risque de deux fois 0.
Ma correction supprimait ce risque en conservant les probabilités.

Cette fois j'ai foi en l'équiprobabilité. Même si pas sûr.
Si on étend ma correction à ta nouvelle version, on doit tendre vers la perfection, mais avec un peu de poids.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 06 Déc 2010, 10:31   Citer 

J'ai eu raison de penser que si on voulait faire plus cours et plus rapide
il fallait utiliser des listes ou des matrices.
Je pense avoir trouver et qu'on ne peut plus faire plus simple et rapide
que cela, la boucle fait 2 instructions, soit le minimum pour donner une
valeur aux deux variables A et B.


Code
:{0,4,0,-4}-)L1:{4,0,-4,0}-)L2
:While 1
:entAléat(1,4)-)L
:L1(L)-)C:L2(L)-)D
:Disp A,B
:End



C'est enfin assez rapide pour mon prgm ! bigmouth.gif
J'incorporerais c'est lignes de commandes et je le publie aussitôt dans...
Surprise...
Algorithme générateur de labyrinthe. glasses.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse Page: 1,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink