La suite des virgules

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

Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5269
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: La suite des virgules

Message par bernouilli92 »

J’ai un programme en 96 pas pour hp42s qui imprime les N premiers termes de la suite.
Par contre c’est de la bidouille car je ne suis pas du tout à l’aise avec le hp42s, pour imprimer n et Un, je combine les deux nombres en nombre complexe avant de l’afficher.
Ensuite je ne comprends pas trop comment faire des boucles, apparement il n’y a que ISG et DSZ, mais comment faire des boucles de plus de 1000?
Pas moyen de faire juste une incrémentation ? Quitte à tester avec des opérateurs ensuite ?
Ensuite il y l’éternel problème de faire l’équivalent d’un DROP.
Fichiers joints
Image PNG.png
Image PNG.png (14.86 Kio) Vu 7945 fois
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5646
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

Re: La suite des virgules

Message par ledudu »

Merci gégé pour cet exercice, très intéressant.

Sur fx-cp400, même problème pour afficher deux nombres sur une même ligne. On a juste droit à print a.
Il faut les transformer en caractère avant de les concaténer puis de les imprimer : 4 lignes, 4 instructions pour faire un banal PRINT A;B sur un pocket...

Code : Tout sélectionner

NumToStr C,"Fix0",x
NumToStr N,"Fix0",y
Strjoin x,y,z
Print z
Du coup, vues les fonctions caractères, pour extraire le chiffre de gauche, je reste en numérique :

Code : Tout sélectionner

int(r/10^int(LOG10(r)))
Le programme est assez lent et affiche le 1000ème à partir de 1 en 7'17''...
Je vais regarder cette idée de nombre complexe.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: La suite des virgules

Message par Danny »

bernouilli92 a écrit : 09 mai 2020 13:32 J’ai un programme en 96 pas pour hp42s qui imprime les N premiers termes de la suite.
Par contre c’est de la bidouille car je ne suis pas du tout à l’aise avec le hp42s, pour imprimer n et Un, je combine les deux nombres en nombre complexe avant de l’afficher.
Ensuite je ne comprends pas trop comment faire des boucles, apparement il n’y a que ISG et DSZ, mais comment faire des boucles de plus de 1000?
Pas moyen de faire juste une incrémentation ? Quitte à tester avec des opérateurs ensuite ?
Ensuite il y l’éternel problème de faire l’équivalent d’un DROP.
Oui tu peux faire une boucle "à la main", en stockant le compteur dans un registre ou une variable, puis tu testes sa valeur et tu boucles avec des GTO.
Pas mal l'astuce des nombres complexes :) Moi je me suis pas fait ch..., j'affiche le compteur en Y et le terme de la suite en cours en X, et j'imprime juste le X :

Image
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5269
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: La suite des virgules

Message par bernouilli92 »

C.Ret a écrit : 09 mai 2020 08:13 Pour info les millionièmes termes de la suite virgule issue de 1 sont 47854973 47625267 49308893 49308823 ou 47676838 selon le choix fait aux différentes bifurcations.
J'ai un peu amélioré mon programme pour hp42s, et je trouve la même valeur pour le millionième terme (sans bifurcation).
On doit pouvoir l'adapter sans problème sur un hp19c.
Fichiers joints
99E9E7D4-2DB8-4E4D-9BE5-9CB8253AC568.jpeg
99E9E7D4-2DB8-4E4D-9BE5-9CB8253AC568.jpeg (111.69 Kio) Vu 7927 fois
Modifié en dernier par bernouilli92 le 09 mai 2020 16:04, modifié 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: La suite des virgules

Message par Danny »

Danny a écrit : 09 mai 2020 14:58 je me suis pas fait ch..., j'affiche le compteur en Y et le terme de la suite en cours en X, et j'imprime juste le X :
Bon finalement je me suis fait un peu + ch... pour imprimer aussi l'indice de chaque terme :)

Image
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
phm
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1364
Enregistré le : 08 avr. 2016 18:36
Localisation : Est Parisien

Re: La suite des virgules

Message par phm »

Bon
On avance jusqu'au 1 048 571e terme pour une valeur de 50 265 415 :D

Édit : je ne comprends pas les bifurcations dont vous parlez ?
J'ai une suite de calcul logique et sans ambiguïté
HEWLETT-PACKARD : The best
CANON
X-07 X-730 X-711 XR-100 XM-101 XP-110F XP-120F XP-130F XP-140

AMSTRAD CPC-464 CPC-6128 ATARI STF DAI Indata
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3422
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: La suite des virgules

Message par C.Ret »

Concernant les "bifurcations" c'est assez simple car gégé a donné une consigne efficace, on prend la valeur la plus faible des sucesseurs possibles.

Par exemple, il y a une 'bifurcation' lorsque l'on arrive à 71 au début de la suite virgule engendrée par 2:

2,24,71,

Jusqu'à 71 tout ce passe bien:
  • à la première virgule 2,2~ forme 22 et on a bien 24 = 2 + 22
  • à la seconde virgule ~4,7~ forme 47 et on a bien 71 = 24 + 47
Mais au niveau de la virgule après 71 il y a deux possibilités soit 71,29 ou 71;30.
Les deux cas sont possibles
  1. 89 = 71 + 18 qui est correct car autour de la virgule on aura bien "1,8" qui forme dix huit.
  2. 90 = 71 + 19 qui est également correct car on aura bien ~1,9~ autour de la virgule
La régle énoncée par gégé nous indique de conserver 89 est de continuer la suite ainsi.

2,24,71,(90)89,181,180,192,214,256,319,413,...

Si l'on fait comme moi et que l'on conserve les deux successeurs possibles, on crée deux branches au niveau de 71 qui forme alors une 'bifurcation':

Code : Tout sélectionner

1 :           2                11:     413     360            21:     920     802
2 :          24                12:     447     363            22:     929     830
3 :          71                13:     522     396            23:    1020     838
4 :      89      90            14:     547     460            24:    1021     927
5 :     180      99            15:     623     464            25:    1032 *******
6 :     181     190            16:     659     509            26:    1053 *******
7 :     192     191            17:     756     605            27:    1084 *******
8 :     214     203            18:     824     661            28:    1125 *******
9 :     256     235            19:     872     677            29:    1176 *******
10:     319     287            20:     901     754            30:     ...     ...
Après la bifurcation les deux branches suivent leur propre vie tout naturellement comme toute bonne suite virgule.

Bon, il s'avère que la seconde branche issue de 71,90 s'éteint à 927 qui n'a pas de successeur. Cela aussi peut arriver dans la dure vie des suites virgules. C'est bien triste, un peu comme l'histoire de la suite virgule engendrée par 3.

En effet
  • 927 + 71 = 998 ne convient pas car ~7,9~ ne forme pas 71
  • 927 + 72 = 999 ne convient pas car ~7,9~ ne forme pas 72
  • 927 + 73 = 1000 ne convient pas car ~7,1~ ne forme pas 73
  • 927 + 74 = 1001 ne convient pas car ~7,1~ ne forme pas 74
  • 927 + 75 = 1002 ne convient pas car ~7,1~ ne forme pas 75
  • 927 + 76 = 1003 ne convient pas car ~7,1~ ne forme pas 76
  • 927 + 77 = 1004 ne convient pas car ~7,1~ ne forme pas 77
  • 927 + 78 = 1005 ne convient pas car ~7,1~ ne forme pas 78
  • 927 + 79 = 1006 ne convient pas car ~7,1~ ne forme pas 79

A moins de considérer que 927,1198 est correct car 1198 = 927 + 271 en considérant ~27,1~ qui est formé asymétriquement autour de la virgule et de façon complètement illégale puisqu'il nous est bien précisé que l'on doit prendre un et un seul chiffre de part et d'autre de la virgule.
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
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7148
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: La suite des virgules

Message par gege »

Bonjour,
C'est Dimanche aujourd'hui, le jour des réponses (surtout les vôtres) !
Alors vous avez trouvé la technique du balayage de 1 à 9, mais peut-on faire mieux ?
Quelle vitesse pour votre programme (disons jusqu'au 1000 ème ou 10000 ème terme) ?
Vous avez remarqué qu'un nombre peut ne pas avoir de successeur, la suite partant de 1 s'interrompt-elle ?
La réponse est bien sûr oui.
Mais quand ??? Eh oui c'est au-delà d'un* million de termes...
Et pourquoi je dis "bien sûr" ??
A quoi ressemblent les nombres qui n'ont pas de successeur ?
A bientôt...
G.E.

* en fait un peu plus de 2
Modifié en dernier par gege le 10 mai 2020 12:47, modifié 1 fois.
Avatar du membre
phm
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1364
Enregistré le : 08 avr. 2016 18:36
Localisation : Est Parisien

Re: La suite des virgules

Message par phm »

J’ai compris que le postulat proposé par gege partait de la suite qui commence par 1 avec la règle de prendre le choix le plus petit comme il l’a précisé par la suite.
Dans ce cas,
La première question est résolue.
La seconde question du 1000e terme est résolue (49609).
Pour la troisième question, je pense que la réponse est qu'il n'y a pas de fin (sauf si on prouve le contraire).

Peut être gege peut-il précisé son postulat si nécessaire ?
HEWLETT-PACKARD : The best
CANON
X-07 X-730 X-711 XR-100 XM-101 XP-110F XP-120F XP-130F XP-140

AMSTRAD CPC-464 CPC-6128 ATARI STF DAI Indata
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5269
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: La suite des virgules

Message par bernouilli92 »

Comme la suite partant de 1 ne s’arrête pas avant 1000, ensuite seuls comptent le premier chiffre et les 3 derniers étant donné qu’on ajoute un nombre inférieur ou égal à 99 et l’ajout de ce nombre doit modifier le premier chiffre. Cela implique que le nombre de départ est de la forme 999...99AB

Du coup, il suffit de tester les nombres de 9900 à 9999 avec n allant de 1 à 9.

Voici mon programme de test, il se base sur VNEXT qui donne le terme suivant d’un nombre :

Code : Tout sélectionner

« 
  9900 9999
  FOR I
    I VNEXT
    I →TAG
  NEXT 
  100 →LIST
»
Le résultat permet de conclure :
Les nombres qu’ont pas de successeurs sont de la forme 99..99AB avec AB qui est multiple de K.
Je ne donne pas encore la valeur de K.

Édit : la suite partant de 1 comprend 21...53 termes.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5269
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: La suite des virgules

Message par bernouilli92 »

J’ai adapté mon programme de hp42s au hp19c, il a juste fallu remplacer un MOD par autre chose.
J’ai remplacé END par 0 et ERROR par -1.
Le programme fait 66 pas.
Pas évident de s’y retrouver avec la notation position des touches. C’est quand même plus agréable d’utiliser des mnémoniques.
Par contre c’est très lent, il faut environ 6 secondes par nombre.
Fichiers joints
AC60ADB0-4B3F-444A-82E6-FABF1FA80F4F.jpeg
AC60ADB0-4B3F-444A-82E6-FABF1FA80F4F.jpeg (117.91 Kio) Vu 7835 fois
BE4ADE6E-1831-4E77-B779-FBBB85F66AF2.jpeg
BE4ADE6E-1831-4E77-B779-FBBB85F66AF2.jpeg (134.48 Kio) Vu 7835 fois
Modifié en dernier par bernouilli92 le 10 mai 2020 12:49, modifié 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7148
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: La suite des virgules

Message par gege »

Bonjour,
Toujours aussi sexy cette machine !!
G.E.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: La suite des virgules

Message par Danny »

Sympa la 19C... je savais pas qu'on pouvait obtenir un tel affichage à l'écran :)
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5269
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: La suite des virgules

Message par bernouilli92 »

Quand un programme tourne, l’affichage affiche n’importe quoi et change très vite. C’est marrant à voir.
Fichiers joints
29DFAB8B-CD51-4FBF-885F-22C01D3E2B11.jpeg
29DFAB8B-CD51-4FBF-885F-22C01D3E2B11.jpeg (84.32 Kio) Vu 7826 fois
F2B5E529-3731-41AF-B700-6D7540467089.jpeg
F2B5E529-3731-41AF-B700-6D7540467089.jpeg (90.81 Kio) Vu 7826 fois
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: La suite des virgules

Message par Danny »

Ah oui ok, je pensais que c'était à l'arrêt :)
C'est comme sur les autres HP classiques du coup, mais comme ça défile vite j'ai jamais vu en mode arrêt sur image :)
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Répondre

Retourner vers « Tous les Pockets »