Générateur de mélange sur TI-83

Si VRAIMENT aucun des autres forums ne vous inspire pour poster votre question ...
11 messages Page 1 sur 1
Antò
Passe sa journée ici. Et dort ici, aussi
Messages : 775
Enregistré le : lun. nov. 07, 2016 7:40 pm


Voilà, vous le savez sûrement déjà mais je suis en Terminale S, et il y a quelques jours j'ai eu l'idée de faire un programme pour mélanger le rubicube sur la calculette TI-83+ celle d'avant le mode examen pour ceux qui connaissent.

j'ai commencé par créer une base rudimentaire : une boucle avec à l'intérieur aléatoirement à chaque tour une des six lettres qui sort, avec une chance sur deux d'avoir un ' derrière.

Conséquence : beaucoup d'annulations, pas de mouvements doubles. Par exemple ça m'était arrivé de tomber sur UUD'U'D dans un mélange, avouez que c'est un peu ridicule ^^

donc j'ai rajouté les mouvements doubles et j'ai créé comme condition que deux mouvements d'affilée ne pouvaient pas agir sur la même face.

ça commence à me donner des mélanges qui ont une meilleure tête, mais j'ai encore deux ou trois problèmes :

- une annulation de type RL2R' est toujours possible (mais ça faut juste que je prenne le temps d'y remédier c'est pas compliqué)
- le nombre de mouvements... Est-ce qu'il est fixe ? Est-ce qu'un mouvement double compte pour un mouvement ? Combien de mouvements doit compter mon mélange ? (je suis sur du 24 mouvements, fixe)
- existe-t-il des restrictions auxquelles je n'aurais pas pensé sur les mélange de 333 ?

voilà donc jointe pour ceux que sa intéresse la structure générale de mon programme machine (mais je vais pas tout recopier hein je suis pas un malade je l'ai écrit une fois ça m'a suffit ^^)
En enlevant toutes les magouilles liées à l'affichage tels que effecr ou output ou sauveimage pour mémoriser et j'en passe :lol: ...

On met à 0 les variables A,B,C //initialisation des variables que j'utilise
Pour I allant de 1 à 24 //boucle centrale
point 0
A prend une valeur entière aléatoire comprise entre 1 et 12
si A=C ou A=C+6 ou A=C-6 alors faire //interdiction de bouger deux fois d'affilée la même face
aller à point 0 //et du coup retour au début de la boucle

Ensuite viennent 12 boucles si A=... alors afficher...
A=1 --> U
A=2 --> D
A=3 --> R
A=4 --> L
A=5 --> F
A=6 --> B
Avec quand A est entre 7 et 12, la même chose et dans le même ordre mais pour les mouvements doubles.
On ferme toutes les boucles si...
C prend la valeur A //pour pouvoir mémoriser A d'une fois sur l'autre et pouvoir appliquer la condition du premier si
si A<=6 alors faire //on ne met un ' aléatoire que sur les mouvements simples, pour les mouvements doubles ça sert à rien
B prend une valeur entière aléatoire comprise entre 0 et 1
si B=0 alors ne rien afficher //là on colle un ' avec une chance sur 2 quel que soit le mouvement parmi les 6 simples
si B=1 alors afficher '
on clos toutes les boucles si
on clos la boucle pour centrale.
Cubeur-manchot
VIP au club des 1000
Messages : 2999
Enregistré le : jeu. sept. 11, 2014 5:16 pm


mar. mars 07, 2017 12:04 amAntò a écrit :
- une annulation de type RL2R' est toujours possible (mais ça faut juste que je prenne le temps d'y remédier c'est pas compliqué)
- le nombre de mouvements... Est-ce qu'il est fixe ? Est-ce qu'un mouvement double compte pour un mouvement ? Combien de mouvements doit compter mon mélange ? (je suis sur du 24 mouvements, fixe)
- existe-t-il des restrictions auxquelles je n'aurais pas pensé sur les mélange de 333 ?
Pour dégager les R L2 R', il suffit de stocker les deux mouvements précédents et de tester si la lettre de l'avant-dernier est la même :)
Pour le nombre de mouvements, effectivement au bout de 24 mouvements initiaux on ne voit rien de trivial, mais tu peux monter à 30 si tu as le courage de mélanger avec plus de mouvements. Dans tous les cas, c'est une question ouverte donc il n'existe pas de réponse stricte :oui:
Il n'y a pas de restriction supplémentaire à priori (j'imagine que tu n'auras pas de cube résoluble en 2 moves) :) si tu veux faire ça minutieusement, tu peux aller jeter un œil directement sur le règlement WCA :oui:
ChloePlumy
Jamais loin d'ici
Messages : 119
Enregistré le : ven. juil. 01, 2016 8:15 pm


Moi qui aime bien bidouiller des programmes en cours de maths, j'avais pas pensé à ca tiens xD

Je vais peut être essayer aussi du coup ^^
bongo
Inamovible
Messages : 496
Enregistré le : dim. déc. 11, 2016 6:56 pm


Ou sinon, tu imposes après un mouvement X qui change un sous-ensemble A, que le mouvement suivant doit changer une partie du sous-ensemble A.
Par exemple après un R, tu as toujours un U ou un D ?
Ca permet d'éliminer des RLR'L' = id

Mais c'est vrai que les mélanges contiennent parfois du R et L consécutivement(donc deux mouvements qui modifient deux sous-ensembles disjoints). Et dans ce cas, il vaut mieux joindre un test derrière.
Antò
Passe sa journée ici. Et dort ici, aussi
Messages : 775
Enregistré le : lun. nov. 07, 2016 7:40 pm


mar. mars 07, 2017 12:58 amCubeur-manchot a écrit :
mar. mars 07, 2017 12:04 amAntò a écrit :
- une annulation de type RL2R' est toujours possible (mais ça faut juste que je prenne le temps d'y remédier c'est pas compliqué)
- le nombre de mouvements... Est-ce qu'il est fixe ? Est-ce qu'un mouvement double compte pour un mouvement ? Combien de mouvements doit compter mon mélange ? (je suis sur du 24 mouvements, fixe)
- existe-t-il des restrictions auxquelles je n'aurais pas pensé sur les mélange de 333 ?
Pour dégager les R L2 R', il suffit de stocker les deux mouvements précédents et de tester si la lettre de l'avant-dernier est la même :)
Fait aujourd'hui, c'est en effet ce style de chose que j'ai programmé ^^
Pour le nombre de mouvements, effectivement au bout de 24 mouvements initiaux on ne voit rien de trivial, mais tu peux monter à 30 si tu as le courage de mélanger avec plus de mouvements. Dans tous les cas, c'est une question ouverte donc il n'existe pas de réponse stricte :oui:
Il n'y a pas de restriction supplémentaire à priori (j'imagine que tu n'auras pas de cube résoluble en 2 moves) :) si tu veux faire ça minutieusement, tu peux aller jeter un œil directement sur le règlement WCA :oui:
Je crois que je vais rester sur 24. J'ai fait une vingtaine de mélanges ce soir pour tester la petit modification, et rien a signaler. (j'ai fait un mélange de 64 moves aussi pour l'eclate, et le pire c'est que ça m'a fait un lucqy ^^
Mouyrf
Né sur ce forum
Messages : 156
Enregistré le : mar. janv. 17, 2017 12:19 am


Comme proposé par Bongo, tu peux imposer que pour 2 mouvement successifs, ce soit toujours des tranches ayant des pièces en commun qui soient utilisées.
C'est à dire simplement interdire aussi les faces opposées.
Ca doit limiter sérieusement les risques d'annulation.

Pour que ça ne complique pas trop tes boucles et conditions tu peux faire :
- A aléatoire entre 1 et 3 pour chaque paire de face opposée (1 = R ou L, 2 = U ou D, 3 = F ou B)
- C continue de stocker le A précédent et tu vérifie juste que le nouveau A est différent de C // interdit 2 faces identiques ou opposées à la suite
- D aléatoire entre 0 et 1 pour choisir une face ou l'autre (0 = R, U ou F / 1 = L, D ou B)
- B aléatoire entre 0 et 2 pour la rotation (ex : 0 = R, 1 = R', 2 = R2)
Antò
Passe sa journée ici. Et dort ici, aussi
Messages : 775
Enregistré le : lun. nov. 07, 2016 7:40 pm


En fait c'est bon, en gros j'ai interdit :

- deux mouvements d'affilée qui touchent la même face
- un mouvement n et un mouvement n+2 qui touchent la même face (je me rends compte d'une amélioration possible du coup)
Spols
Le belge du Magic
Messages : 5187
Enregistré le : jeu. août 18, 2005 2:44 pm


De telles limitations demandent aussi une analyse de l'impacte qu'elles ont sur le mélange. mais ce n'est pas faisable sur calculette ni même aisément sur PC.

la meilleur limitation est un empéchement d'un même mouvement à la suite et si les 2 derniers mouvements sont du même groupe, il y a limitation du nouveaux. le plus simple est de créer son tableaux de choix de mouvement à chaque coups en fonction du précédent ou des 2 précédents.

Mais de toute façon la bonne question à se poser que cherce t on à obtenir à la fin ? le meilleur mélangeur ? alors une calculette n'est pas le meilleur outils, un générateur de mélange portable ? idem
Un moyen de s'amuser ? alors allons y .
bongo
Inamovible
Messages : 496
Enregistré le : dim. déc. 11, 2016 6:56 pm


mar. mars 07, 2017 10:15 pmAntò a écrit :
En fait c'est bon, en gros j'ai interdit :

- deux mouvements d'affilée qui touchent la même face
- un mouvement n et un mouvement n+2 qui touchent la même face (je me rends compte d'une amélioration possible du coup)
Pour le deuxième tu n'auras jamais des sexy moves ?
Tu interdirais donc des mouvement du type RUR ou RUR' ?
Ca limite beaucoup les mélanges ?
Antò
Passe sa journée ici. Et dort ici, aussi
Messages : 775
Enregistré le : lun. nov. 07, 2016 7:40 pm


mar. mars 07, 2017 10:15 pmAntò a écrit :
En fait c'est bon, en gros j'ai interdit :

- deux mouvements d'affilée qui touchent la même face
- un mouvement n et un mouvement n+2 qui touchent la même face (je me rends compte d'une amélioration possible du coup)
mer. mars 08, 2017 11:23 ambongo a écrit :
Pour le deuxième tu n'auras jamais des sexy moves ?
Tu interdirais donc des mouvement du type RUR ou RUR' ?
Ca limite beaucoup les mélanges ?
mar. mars 07, 2017 10:15 pmAntò a écrit :
En fait c'est bon, en gros j'ai interdit :

- deux mouvements d'affilée qui touchent la même face
- un mouvement n et un mouvement n+2 qui touchent la même face (je me rends compte d'une amélioration possible du coup)
C'est en effet de cela que je parlais !

et Spols, mon but est bien de m'amuser, je sais très bien que la calculette est pas le meilleur melangeur ^^
Antò
Passe sa journée ici. Et dort ici, aussi
Messages : 775
Enregistré le : lun. nov. 07, 2016 7:40 pm


Bon ça y est je pense avoir réussi à résoudre tous les problèmes :

sont impossibles les suites de mouvements :

RR'
RLR
R2R'
RL2R'L

bref toutes les annulations possibles.

sont possibles les suites de mouvements :

RUR'U' et tout le reste ^^
11 messages Page 1 sur 1