J'ai besoin de vous tous !! |
Auteur |
Message |
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Lun 29 Nov 2010, 11:35
|
|
|
Salut à tous, J'ai besoin de vous pour résoudre un problème de taille !
Voilà je suis sur le point de terminer un prgm mais il me manque une suite de
commande des plus essentiel...
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...
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...
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 !
Merci d’avance... Louis davin.
---------------------- 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 |
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 29 Nov 2010, 12:27
|
|
|
Code | Lbl 0
Int rand(2->A
Int rand(2->B
If A+B=0: Goto 0 |
Ça te suffit pas?
Sangohan38
|
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Lun 29 Nov 2010, 13:06
|
|
|
Euh,super... Ça donne quoi en Stat.fr ?
---------------------- 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 |
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Lun 29 Nov 2010, 13:10
|
|
|
A oui fichtre, C'est vrai qu'elle question !
Il y à le lien sous ton message.
---------------------- 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 |
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Lun 29 Nov 2010, 13:17
|
|
|
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).
---------------------- 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 |
|
|
|
metallica
Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
|
Posté le : Lun 29 Nov 2010, 19:06
|
|
|
ça donne plutôt:
Code | entaleat(-1,1-)A
If non(A
entaleat(-1,1-)B |
----------------------
Tutoriel sur l'Axe Parser ! |
|
|
|
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
|
|
|
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
|
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Mar 30 Nov 2010, 11:45
|
|
|
Ç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 |
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mar 30 Nov 2010, 18:18
|
|
|
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 |
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Mar 30 Nov 2010, 19:01
|
|
|
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
|
|
|
|
metallica
Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
|
Posté le : Mar 30 Nov 2010, 19:37
|
|
|
Sans faire de boucle:
Code | entaleat(-1,1-)A
EffVar B
If non(A
entaleat(-1,1-)B |
----------------------
Tutoriel sur l'Axe Parser ! |
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mar 30 Nov 2010, 20:03
|
|
|
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 |
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Mer 01 Déc 2010, 11:12
|
|
|
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...)
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...
Je compte sur vous tous pour trouver et merci pour toutes vos idées...
---------------------- 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 |
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Mer 01 Déc 2010, 11:18
|
|
|
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 |
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Mer 01 Déc 2010, 11:20
|
|
|
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 |
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Mer 01 Déc 2010, 11:32
|
|
|
Re plus court !
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 ???
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...
Je panse qu'on en tient le bout !
---------------------- 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 |
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 01 Déc 2010, 18:12
|
|
|
Je n'ai pas compris ta question.
---
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 |
|
|
|
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 : 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:
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 ! |
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Jeu 02 Déc 2010, 19:41
|
|
|
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 |
|
|
|
ld
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
|
Posté le : Lun 06 Déc 2010, 10:31
|
|
|
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 !
J'incorporerais c'est lignes de commandes et je le publie aussitôt dans...
Surprise...
Algorithme générateur de labyrinthe.
---------------------- 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 |
|
|
|