TI-62 Galaxy

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: TI-62 Galaxy

Message par C.Ret »

Schraf a écrit : 29 janv. 2022 14:06 Avec Excel (donc sans utiliser les tables) :

Code : Tout sélectionner

=LOI.KHIDEUX.INVERSE(0,95;5) donne 11,07049769
=LOI.KHIDEUX.INVERSE(0,9;9) donne 14,68365657
C'est tout le dilème de notre époque;
  • Faut-il abattre les arbres pour imprimer nos tables de logarithmiques et de statistiques.
  • Faut-il bruler nos forêts pour produire l'électricité nécessaire aux machines où nous utilisons Excel ?
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

J'essaie d'améliorer le code pour que la TI-62 applique d'elle-même la loi Khi2 à l'algorithme programmé pour générer les nombres aléatoires. J'imagine le programme comme suit :

Code : Tout sélectionner

########### Les données en entrée #####################
1. La semence initiale
2. Le nombre de tirages
########### Les calculs et les tests #####################
1. Le calcul du noyau du nombre pseudo-aléatoire "x"
2. Le calcul du nombre pseudo-aléatoire "n"
3. Le comptage de chaque chiffre tiré (cumulé en mémoires)
4. Le calcul de la formule Khi2
5. Le test Khi2
6. La sortie automatique du programme une fois la limite de tirage est atteinte
Je ne sais pas si vraiment l'on pourrait réussir à le faire vu les limites de la TI-62 mais ça vaut la peine d'essayer :D Curiosité scientifique :idea: :?: 8O
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

Bonjour,
Je rencontre beaucoup de difficultés à implémenter le code car je dépasse les 42 pas. :( Au delà de cette limite de base, à chaque dépassement de 7 pas supplémentaires, une mémoire utilisateur est consommée donc perdue en tant que mémoire et transformée en 7 pas de programme. 8O
Autrement dit, arrivé à 56 pas, j'ai déjà perdu R9,R8 et R7 sachant que la TI-62 n'en dispose que de 10 (R0 à R9) :(
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

Je suis arrivé à récupérer le cumul de chacun des chiffres tirés et à les enregistrer respectivement dans R1, R2, R3, R4, R5 et R6 pour ensuite faciliter le calcul de Khi2 en mode Calcul cette fois en faisant appel au RCL0, ....., RCL7.

Code : Tout sélectionner

########### Lancé de dés avec récupération du cumul par chiffre tiré ############
00	LBL 1			19	x<-->t			36	x=t
01	RCL 7			20	1			37	STO+ 6
02	+			21	x=t			38	DSZ
03	Pi			22	STO+ 1			39	GTO 1
04	=			23	2			40	2
05	Puissance		24	x=t			41	STO/ 2
06	8			25	STO+ 2			41	3
09	=			26	3			42	STO/ 3
10	FRAC			27	x=t			43	4
11	STO 7			28	STO+ 3			44 	STO/ 4			
12	x			29	4			45	5
13	6			30	x=t			46 	SOT/	5
14	=			31	STO+ 4			47	6
15	Intg			32	5			48	STO/ 6
16	+			33	x=t			49 	ON/C
17	1			34	STO+ 5			50 	R/S
18	=			35	6
Pour gagner quelques pas de programme, on saisit en mode calcul :
1. Le nombre de tirages. Exemple 300 STO 0
2. La semence initiale. Exemple 0.261 STO 7
Si on peut encore l'optimiser, on gagnerais peut-être quelques pas pour calculer Khi2 dans le programme :?: :idea:
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: TI-62 Galaxy

Message par C.Ret »

Bien joué, j'y avais renoncé sans l'adressage indirect qui fait défaut sur une TI-62. Donc belle astuce d'utiliser un test à chaque fois.

Mais je vois un moyen plus économique en nombre de pas. Il utilise l'instruction de boucle DSZ qui évite toutes ces répétitions ...
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

Bonjour,
C.Ret a écrit : 31 janv. 2022 18:54 ... Mais je vois un moyen plus économique en nombre de pas. Il utilise l'instruction de boucle DSZ qui évite toutes ces répétitions ...
Piste intéressante :idea: Je vais également l'exploiter :D sachant que l'instruction DSZ ne fait que de la décrémentation (donc pas d'incrémentation) et ne travaille qu'avec le registre R0 8O
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: TI-62 Galaxy

Message par Schraf »

On peut aussi imaginer qq chose comme ça :

Code : Tout sélectionner

LBL 1	00
2	01
X<>T	02
RCL 3	03
+	04
PI	05
=	06
Y^X	07
8	08
=	09
FRAC	10
STO 3	11
*	12
6	13
=	14
INTG	15
X>T	16
GTO 2	17
SBR 3	18
ST+ 1	19
GTO 4	20
LBL 2	21
-	22
3	23
=	24
SBR 3	25
ST+ 2	26
LBL 4	27
DSZ	28
GTO 1	29
R/S	30
LBL 3	31
*	32
3	33
=	34
10^X	35 (INV LOG)
RTN
On initialise en faisant 2nd CM puis 300 STO 0 (Nb de tirages) et 0.2684 STO 3 (graine).
RST et R/S puis on patiente ou on arrête quand plus de pile :lol:

Dans RCL 1 on aura par exemple 1002005 qui veut dire que l'on a tiré 5 fois le 1, 2 fois le 2, 1 fois le 3
Dans RCL 2 on a la suite, par exemple 13022037 pour 37 fois le 4, 22 fois le 5 et 13 fois le 6
Dans RCL 0 le nombre de tirages qu'il reste encore à faire (si on s'est arrêté avant la fin)
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: TI-62 Galaxy

Message par Schraf »

Version en Python (à tester par exemple sur ce site) :

Code : Tout sélectionner

from math import pi
from random import random

def algo(g = random(), tirages = 1000):
  res = [0,0,0,0,0,0]
  for _ in range(tirages):
    g = (g + pi) ** 8 % 1
    res[int(6 * g)] += 1
  return res

def khi2(res):
  print(res)
  th = sum(res) / 6
  return sum([(v - th) ** 2 for v in res]) / th
  
print(khi2(algo()))

# Résultats...

[185, 158, 168, 148, 183, 158]
6.62

[165, 182, 158, 168, 157, 170]
2.516
La plupart du temps l'algo passe le test du Khi2.

Pour revenir à mon programme précédent pour la Ti-62, vu que je n'ai utilisé que les mémoires de 0 à 3, il y aura p'tet une petite chance d'avoir suffisamment de pas pour calculer le Khi2...
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

On cherche à gagner quelques pas de programme pour éventuellement y insérer le calcul de Khi2 :idea: Avec ta proposition, on économise effectivement 15 pas :D Mais je pense que ça posera deux principaux problèmes :
a. Si l'on choisissait, à titre indicatif, un nombre de tirages important comme 18000 (ou plus, je n'ai pas vérifié et puis les piles vont peut être se décharger avant d’arriver au résultat final :mrgreen: ), le contenu des registres R1 et R2 ne passerait pas en notation scientifique :?: , ce qui rendrait inexploitable la lecture des cumuls de tirage :?: :(
b. Avec une telle écriture condensée des cumuls, comment implémenter la formule Khi2 :?:
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: TI-62 Galaxy

Message par Schraf »

Avec 3000 tirages, la répartition par face (de 1 à 6) doit théoriquement tourner vers les 3000 / 6 = 500 donc on a de la marge avec les 3 places 000-999.

Si on veut intégrer le calcul du Khi2 je pense effectivement qu'il faudrait se fixer un nombre de tirages, genre 600 (càd théoriquement 100 par face). Je n'ai pas testé le code ci-dessous mais qq chose comme (:

Code : Tout sélectionner

LBL 5
3 STO 0	// 3 nombres à récupérer par mémoire
10^X
STO 3	
Lbl 6
RCL 1 
INTG	// On oublie la partie fractionnaire à chaque tour
/
RCL 3	// On divise par 1000
=
STO 1
FRAC	// On récupère le nb x (partie fractionnaire entre 0.000 et 0.600)
-
.1	// (x - .1) ^2 (en théorie 100 soit 0.100)
=
x^2
STO+4	// Ajout dans mémoire 4 (qui initialement est à 0)
Dsz	// On passe au nb suivant de la mémoire 1
GTO 6
R/S	// Au premier arrêt on fait R/S, au second arrêt le résultat est dans la mémoire 4
RCL 2	// On recommence avec la mémoire 2
STO 1
GTO 5
Le résultat final est dans la mémoire 4, à multiplier par 100.

Mais encore une fois, je n'ai pas testé, c'est juste une idée...
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: TI-62 Galaxy

Message par Schraf »

Voici ma dernière version dans le cas particulier de 600 tirages (l'histoire d'avoir des 600 / 6 = 100 pour le calcul du Khi2) :

On initialise : 2nd CM, 600 STO 0 et 0.xxxx STO 3

Code : Tout sélectionner

LBL 1	00
2	01
X<>T	02
RCL 3	03
+	04
PI	05
=	06
Y^X	07
8	08
=	09
FRAC	10
STO 3	11
*	12
6	13
=	14
INTG	15
X>T	16
GTO 2	17
SBR 3	18
ST+ 1	19
GTO 4	20
LBL 2	21
-	22
3	23
=	24
SBR 3	25
ST+ 2	26
LBL 4	27
DSZ	28
GTO 1	29
R/S	30	// Au premier arrêt on peut regarder tranquillement les mémoires 1 et 2
GTO 5	31	// pour connaitre les répartitions. Ensuite on appuie sur R/S
LBL 3	32
*	33
3	34
=	35
10^X	36 (INV LOG)
RTN	37
LBL 5	38	// Calcul du Khi2
3	39
STO 0	40
10^X	41
STO 3	42
Lbl 6	43
RCL 1	44
INTG	45
/	46
RCL 3	47
=	48
STO 1	49
FRAC	50
-	51
.	52
1	53
=	54
x^2	55
ST+ 4	56
Dsz	57
GTO 6	58
RCL 2	59
x<>t	60
0	61
x = t	62	// On regarde si on a déjà traité la mémoire 2
GTO 7	63	// si oui affichage du khi2
STO 2	64	// On met la mémoire 2 à 0
x<>t	65
STO 1	66
GTO 5	67
LBL 7	68
RCL 4	69
*	70
1	71
EE	72
4	73
=	74
R/S	75
Il reste 4 mémoires de disponibles. Comme la première partie (tirages "aléatoires") fonctionne, j'ai juste testé le calcul du Khi2 en faisant 2nd CM (pour effacer la mémoire 4), 123095090 STO 1 et 93104095 STO 2 (ce qui fait 123+95+90+93+104+95=600) puis GTO 5 et R/S. J'obtiens 7.44 qui est la bonne valeur.

PS. Je viens de faire le test en vrai et après... 1h20, j'ai bien eu les 600 valeurs : 110 115 114 en mémoire 1, 110 079 072 en mémoire 2 et enchaînement sur le khi2=18,46
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

Bonsoir,
La formule utilisée pour le calcul du nombre pseudo-aléatoire est :
n = INT[(b-a+1)*x] + a
Ce qui donnerait dans notre cas :
n = INT (6 * x) + 1
Je ne vois pas le "+ 1" dans la formule :?: c'est-à-dire à partir de la ligne 15 8O
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: TI-62 Galaxy

Message par Schraf »

Le +1 ne sert à rien, c'est juste pour nous humains. Avoir un dé avec des faces notées de 0 à 5 c'est pareil. Et c'est plus facile pour enregistrer dans les 2 mémoires plutôt que d'ajouter 1 et de l'enlever juste après.
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

Bonjour,
J'ai bien compris la moitié de ta solution Schraf :D , mais j'ai des difficultés à suivre ton raisonnement pour la seconde partie relative au calcul de Khi2 :!: :o Peux-tu la commenter en vue de faciliter sa compréhension :idea: :?:
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Andromede
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 157
Enregistré le : 09 oct. 2021 15:15

Re: TI-62 Galaxy

Message par Andromede »

Donc tu as fixé le nombre de tirages à 600 et dans le programme tu as inséré Ti=100 comme une constante afin d'éviter de la calculer dans le programme par manque de pas. C'est ça :?: Et si on désire changer le nombre de tirages, on recalcule manuellement le Ti correspondant et le réinjecte dans le programme comme constante :?: Ou bien on considère que c'est un algorithme fait uniquement pour 600 tirages :o
Parce que si on prend par exemple le nombre de tirages 468, Ti=78, dans ce cas là il faudrait modifier pas mal de choses dans le programme 8O :!:
Casio FX-850P, FX-880P, FX-7000G, FX-7000GA, FX-3900P
Canon X-07
Sharp E500, EL-9000, PC 1500
Texas Instruments TI-57 II, TI-62 Galaxy, TI-66 Programmable, TI-74 Basicalc, TI-74S, TI-95 Procalc
" Les machines un jour pourront résoudre tous les problèmes, mais jamais aucune d'entre elles ne pourra en poser un !" Albert Einstein
Répondre

Retourner vers « Tous les Pockets »