Misez p'tit Optimisez n°53 : la suite de Syracuse

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: Misez p'tit Optimisez n°53 : la suite de Syracuse

Message par C.Ret »

Schraf a écrit : 24 avr. 2023 13:07 Le nombre cherché est donc 2^4 + 2^10 + 2^13 = 9232 !
Image
Bien. comme j'ai un peu de mal à lire directement le binaire, j'ai sorti mon HP-28S.

Du coup je vois que ce graphique commence bien à 27 = #11011b = 2^4+2^3+2^1+2^0.
Mais ne finit pas à 1 = #1b = 2^0.

J'ai un peu de mal à lire directement le binaire.

Comme j'avais mon HP-28S dans les mains, j'ai retracé le graphe LOG-LIN de 27. En déplaçant le curseur, c'est très facile de lire directement les valeurs:
Image

Les termes de la suite sont d'ailleurs directement accessibles dans la matrice ∑DAT.

J'ai aussi tracé un graphique TRUTH de la série issue de 27. J'obtiens le même résultat que Scharf. c'est un bon compromis entre un tracé LIN et LOG. Notez que la suite arrive à 1 puis continue par 4 2 1 4 2 1 4 2 1 ... jusqu'à la fin de l'écran.
MPO 53 - HP-28S Truth de suite syracuse de 27.gif
MPO 53 - HP-28S Truth de suite syracuse de 27.gif (74.38 Kio) Vu 2100 fois
Je ne comprends pas très bien l'intérêt de ce graphique Truth qui me parait un peu moins lisible. Sauf que peut-être que l'on peut y "lire" les grandes comme les petites valeurs sans avoir à déplacer exactement son curseur graphique. Encore faut-il être fort en binaire.
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.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit Optimisez n°53 : la suite de Syracuse

Message par Schraf »

@C.Ret : L'écran de la NUMWORKS fait 320 pixels or j'ai dessiné des rectangles de 3 pixels de large et le TOF pour 27 est 111 (ça je pense que l'on commence à le savoir !!) donc on ne voit pas la fin du tracé... Sinon je suis d'accord avec toi, il y a 10 types de personnes dans le monde : ceux qui savent compter en binaire et les autres 🤣

J'ai bien conscience que sur pas mal de graphiques on a Trace qui permet de se promener sur la courbe et donc de voir les valeurs. Je pensais plutôt à des calculatrices ou ordis où ce n'est pas possible et surtout au fait qu'il faut très peu de pixels en hauteur pour représenter de façon exacte les nombres (genre ZX81).

Pour le mode Truth des HP48/49/50g ça permet, à partir du résultat d'un test logique, d'afficher ou non un pixel. Par exemple :

Code : Tout sélectionner

« X R→B DUP Y R→B XOR < » (View Horiz=0-159 et Vert=0-63 sur HP50g)
Immeubles
Immeubles
imm.png (5.53 Kio) Vu 2076 fois
On applique un ou exclusif entre X et Y (préalablement convertis en binaire) et on regarde si le nombre obtenu est supérieur à X. Si oui un pixel est affiché. Ca permet d'obtenir tout un tas de fractales en une seule ligne.

Code : Tout sélectionner

« X R→B Y R→B AND B→R NOT »
Sierpinski
Sierpinski
sierpinski.jpeg (14.08 Kio) Vu 2076 fois
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit Optimisez n°53 : la suite de Syracuse

Message par Schraf »

Bonjour,

Je me suis servi du programme de @C.Ret et @Ben pour ma vidéo d'initiation à l'assembleur 6502.

Si j'ai bien compris le Commodore C128D a déjà un moniteur intégré contrairement au Commodore 64 où il faut charger un programme, comme par exemple Supermon64+. J'ai refait les manips de @C.Ret que l'on voit sur ses copies d'écran.

Comme on est dans le forum "Tous les Pockets", vous trouverez également dans la vidéo une version pour un clone du KIM-1, petit appareil qui fait environ 10 x 6 cm ! Les résultats sont instantanés pour N=27 et N=639, il faudra que je trouve le temps d'améliorer le programme pour travailler sur plus d'octets et donc travailler avec des valeurs plus grandes que 65535.

Clone du KIM-1
Clone du KIM-1
KIM1.jpg (28.6 Kio) Vu 1905 fois

Comme la vidéo est super longue, voici les endroits qui peuvent vous intéresser :

Syracuse sur un clone du KIM-1

Syracuse sur le Commodore 64
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: Misez p'tit Optimisez n°53 : la suite de Syracuse

Message par C.Ret »

Schraf a écrit : 08 juin 2023 09:03Si j'ai bien compris le Commodore C128D a déjà un moniteur intégré contrairement au Commodore 64 où il faut charger un programme, comme par exemple Supermon64+. J'ai refait les manips de @C.Ret que l'on voit sur ses copies d'écran.
Oui, c'est bien cela.
Ce moniteur intégré a d'ailleurs de nombreux avantages.

D'abord il gère les différentes configurations mémoire du C128 qui contrairement au C64 a nativement 16 'banques' mémoires.
Le second avantage et que dans le moniteur intégré, on a accès à un DOS à l'aide de l'instruction @ qui permet de lire, formater et configurer les lecteur de disquettes ou de carte SD,...
Le troisième avantage, est qu'il permet d'avoir à tout moment un instantané de ce qu'il y a en mémoire et les registres du processeur. Bien utile pour sortir d'une boucle ou d'un plantage, mais aussi pour hacker les programmes....

A cela s'ajoute les fonctions communes aux autres moniteur, assemblage, désassemblage, recherche, remplissage, copie de zone mémoire, conversions de bases binaire/octal/décimal/hexa, etc.. quelque soit l'écran 40 ou 80 col.
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.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit Optimisez n°53 : la suite de Syracuse

Message par Schraf »

En 2017 @Xerxes proposait un programme pour les CASIO 180P et similaires. Etant en train d'étudier le TANDY EC-4024 (qui n'est autre qu'une CASIO fx-50F), voici une version un peu plus courte (24 pas au lieu de 27, en supprimant FIX 0, NORM et sans utiliser la mémoire K2) :

Code : Tout sélectionner

Pas	Touches
01	2
02	Kin ÷ 1		# n / 2
03	Kout 1
04	-
05	1
06	Kin + 3 	# TOF = TOF + 1
07	=
08	1/x		# Si n = 1 arrêt sur une erreur
09	Kout 1
10	-
11	RND		# Partie entière quand on est en FIX 0
12	+
13	.
14	5
15	=		# Si n est pair on obtient 1 et 0 sinon
16	x > 0		# Retour pas n°1 si n pair
17	6		# Sinon...
18	Kin × 1
19	1
20	Kin + 1		# 3n+1
21	Kout 1
22	x ≤ M		# Si n <= max retour au pas n°1
23	Min		# sinon mise à jour du max
24	x > 0		# On peut aussi utiliser RTN sur la 180P (n'existe pas sur la fx-50F)
Utilisation :

Code : Tout sélectionner

MODE FIX 0
KAC
27 Min Kin 1 P1

Le programme s'arrête sur -E-
AC puis MR pour voir le maximum et Kout 3 pour le temps de vol

Pour un autre calcul faire : 
KAC
17 Min Kin 1 P1
Sur la CASIO fx-50F on peut aussi faire MODE 1 (BASE N) et MODE 0 (COMP) pour trouver la partie fractionnaire :

Code : Tout sélectionner

3.5 - MODE 1 MODE 0 = 

donne 0.5
L'astuce est que le passage en mode BASE N supprime les décimales. Hélas sur la 180P il ne semble pas possible de passer en MODE BASE N à l'intérieur d'un programme.
Répondre

Retourner vers « Tous les Pockets »