La Question du Dimanche IV

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 : 3400
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

La Question du Dimanche IV

Message par C.Ret »

Comme j'avais un peu de temps hier, j'ai testé le fonctionnement de mon Commodore C128D et installé une petite télé THOMSON pour lui servir d'écran 40 col. tout en profitant simultanément de l'affichage 80 col. sur mon moniteur original.

Tout va bien, il fonctionne toujours aussi bien et j'ai pu le faire fonctionner en profitant des deux affichages, ce qui est une vraie révolution :
En 30 ans c'est la première fois que je n'ai pas à appuyer sur la touche du moniteur pour swapper entre les deux écrans !


Ce qui m'amène à la question de ce dimanche, jour de mémoire doublement férié


A quoi correspond cette capture d'écran (graphique) ?
Question Dimanche IV (reduit).gif
Question Dimanche IV (reduit).gif (54.48 Kio) Vu 9958 fois

Cette question en amènera certainement d'autres et je ne fournirai la réponse qu'à partir de la fin de semaine prochaine.
Ou bien plus tard, si aucune de vos propositions ne s'avère exacte.
Par contre, quelques indices pourraient être diffusé d'ici là en réponse à d'éventuelle sollicitations.
Modifié en dernier par C.Ret le 11 nov. 2018 14:39, modifié 1 fois.
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
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5217
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: La Question du Dimanche IV

Message par bernouilli92 »

Un représentation des nombres premiers affichés en spirale en partant du milieu.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
Gege34
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 1165
Enregistré le : 03 oct. 2014 11:19
Localisation : 31

Re: La Question du Dimanche IV

Message par Gege34 »

Un jeu de la vie
Commodore (64/128/Amiga), HP (28/41/48/50/71/75/200/Prime) et autres (Ti, Canon X07, Psion, Casio, Palm, Thomson, Exl, Amstrad)
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6167
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: La Question du Dimanche IV

Message par Marge »

bernouilli92 a écrit : 11 nov. 2018 14:25 Un représentation des nombres premiers affichés en spirale en partant du milieu.
Oui, je dirais la même chose, la "spirale" de Ulam (orthographe approximative).

Mais enfin, ça pourrait être autre chose, venant de toi... :wink:

C'est une vue inspirante en tout cas.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
babaorhum
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 454
Enregistré le : 13 janv. 2013 19:44
Localisation : Marseille-est

Re: La Question du Dimanche IV

Message par babaorhum »

Hello,

C'est avant ou après le passage en vitesse lumière ?

8O
BaBaoRhum
HP J728,200LX,1000CX,75C,71B,48GX,42s,41CX,32E,32Sii,28S,22s,21,16C,11C
Sharp PC- E500,1600,1500,1350,1261,1245
Casio FX-502P,602p,850P,3900P,4000P
TI-74,92,95 ; Canon X-07 ; TANDY EC-4026 ; Wp34S
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3400
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: La Question du Dimanche IV

Message par C.Ret »

Ah! Ah!

Je vois que certains ont déjà trouvé.

D'autres sont encore à des années lumière.
C64_Organism.png
C64_Organism.png (28.14 Kio) Vu 9843 fois
Remarquons que cela n'est pas un problème, le mode C64 de mon appareil me permet d'explorer un univers infini de possibilités.

En guise d'aide, je voulais donner le code qui génère cet écran:

Code : Tout sélectionner

list

10 color 0,rclr(5):color 1,rclr(6):color 4,rclr(0):graphic 1,1:dim h(56),x%(3),y%(3)
20 h(1)=257:x%(0)=1:y%(1)=-1:x%(2)=-1:y%(3)=1:e=2^-7:n=1:x%=100:y%=x%
30 do until y%<0:if p% then draw 1,1.6*x%,y%:if k%<56 then k%=k%+1:h(k%)=n*(n+.001)
40 n=n+1:p%=1:s%=s%+1:x%=x%+x%(d%):y%=y%+y%(d%):if s%>l% then s%=0:l%=l%+(d%and1):d%=(d%+1)and3
50 do while int(h(1))<=n:p%=0:i=1:h=h(1)+int(1e3*(h(1)-int(h(1)))+e)
60 do:h(i)=h:i=i+i:if i>k% then exit:else if i<k% then if h(i+1)<h(i) then i=i+1
70 if h(i)<h then h(i/2)=h(i): else exit
80 loop:loop:loop:end

ready.

Mais je ne suis pas sûr que cela soit d'un grand secours !
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
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3400
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: La Question du Dimanche IV

Message par C.Ret »

Comme je trouvais le code-ci dessus peu visible, je vous ai préparé une version colorée et commentée.
ULAM C128D (color).png
ULAM C128D (color).png (79.91 Kio) Vu 9799 fois


Il s'agit donc bien d'une spirale d'Ulam.
Elle est identique à celle illustrant l'article sur Wikipédia :


Image

Il y a d'autres "spirales" que je trouve très bien. En particulier celle avec le nombre de diviseurs. mais je ne sais pas comment la représenter correctement avec un CBM.


Par ailleurs, il m'a fallu plus de 6 heures pour l'obtenir. La question qui en découle est, y -t- il un algorithme plus efficace ?
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
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5217
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: La Question du Dimanche IV

Message par bernouilli92 »

Je ne sais pas trop comment tu as fait pour dessiner ta spirale.
Mais si tu testes les nombres un à un pour déterminer s’ils sont premiers ou pas, tu irais certainement plus vite en programmant un crible de Eratosthene.
Modifié en dernier par bernouilli92 le 15 nov. 2018 11:56, modifié 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3400
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: La Question du Dimanche IV

Message par C.Ret »

C'est effectivement l'idée, utiliser un crible pour profiter pleinement de l'énumération et déterminer les nombres premiers au fur et à mesure de la progression.

Je n'ai pas utilisé un crible d'Eratosthène, mais quelque chose de très semblable, un crible de Sudaram comme je l'ai fait pour imprimer comme Jürgen Keller.

A la différence qu'ici je parcours les nombres un par un pour dessiner en même temps la "spirale".

Le crible de Sudaram est donc un peu modifié car je considère tous les multiples de chaque facteur au lieu d'un multiple sur deux (astuce qui permet de ne parcourir que les nombres impairs).
Mais le principe reste le même, au fur et à mesure de l'avancement, chaque nombre premier p devient le facteur générateur d'une suite de multiples commençant à :

Code : Tout sélectionner

p :	p²   p+p²	2p+p²	3p+p²	4p+p²	...

2:	4	6	8	10	12	...
3:	9	12	15	18	21	...
5:	25	30	35	40	45	...
...		
Comme on parcourt dans l'ordre, rien ne sert de mémoriser tous les multiples, simplement le prochain pour chaque facteur.
C'est là qu'intervient le min-Heap qui permet en un minimum d'efforts de toujours pointer sur le plus petit des multiples tous facteurs confondus.

C'est à cela que sert le tableau R() dans lequel est organisé le min-Heap sous forme d'un tas binaire. La partie fractionnaire des nombres permet de mémoriser le facteur correspondant.

Par exemple, si on regarde le contenu de la mémoire lorsque n atteint 19 on a :

Code : Tout sélectionner

n=19

R(1..7)=         ┌───────────20.002──────────┐
          ┌────21.003───┐             ┌────25.005───┐
        49.007       121.011       169.013       289.017
  
R(8)=361.019

Comme 19 est inférieur à 20, 19 est premier et une nouvelle chaine de multiple est initiée en ajoutant 361.019 en R(8), fin du tableau. qui est alors prêt pour la valeur suivante n=20. 20 est composé car égal à INT R(1). La racine du tableau est alors incrémentée de 2 et descendue (PUSH DOWN) ce qui fait remonté le multiple attendu suivant. (21 issue du facteur 3).

Code : Tout sélectionner

n=20
R(1..8)=         ┌───────────21.003──────────┐
          ┌────22.002───┐             ┌────25.005───┐
   ┌────49.007       121.011       169.013       289.017
361.019        
Qui est composée

Pour aller jusqu'à 40'000 (spirale de 200x200 pixels) il faut tenir compte d'une cinquantaine de facteurs premiers.


Quand à la spirale, elle est dessinée selon le schéma ci-dessous:
Spirale Ulam.png
Spirale Ulam.png (13.4 Kio) Vu 9725 fois
Pour chaque entier n, j'avance d'une case ma "tortue graphique" comme je le faisait en LOGO.
Au bout d'une certaine longueur, je tourne la tortue d'un quart de tour à gauche est je recommence sur une longueur que j'augmente d'une unité deux fois par révolution complète. C'est à dire une fois sur deux après un virage à gauche de façon à ne laisser aucune "case vide" entre les nombres
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.
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: La Question du Dimanche IV

Message par Ben »

Je n'ai pas beaucoup de temps à consacrer à la programmation pour le moment, mais voici mon petit programme :-)

La spirale se dessine sur le 40col pendant qu'on voit la progression sur le 80col. Il y a encore pas mal de boulot pour optimiser un peu le tout!

Code : Tout sélectionner

10 graphic 1,1
20 x=0:y=0:q=1:a=1:b=0:p=1
30 gosub 150
40 for i=1 to q
50 x=x+a
60 gosub 150
70 next i
80 for i=1 to q
90 y=y+a
100 gosub 150
110 next i
120 q=q+1
130 a=a*-1
140 goto 40
150 b=b+1
160 print b;"=";x;y;
165 if b/2=int(b/2) then 230
170 for j=2 to sqr(b)
180 if b/j=int(b/j) then p=0
190 next j
200 if p=0 then 220
205 print "premier"
210 draw 1,x+160,y+100
220 p=1
230 return
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3400
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: La Question du Dimanche IV

Message par C.Ret »

Cela aurait pu faire l'objet dimanche soir d'une nouvelle question du dimanche. Mais comme il s'agit de la même spirale, je préfère poster dans ce même fil.

Il y d'autres alignements et diagonales sur ces spirale, je ne pensait pas pouvoir les tracer sur l'écran graphique de mon C128D. Surtout que l'instruction CIRCLE ne sait pas tracer des rayons autre qu'entier.

Je mets ici deux captures (obtenue sur émulateur car les image sont plus faciles à poster que des photos)
Question Dimanche IV (3).gif
Question Dimanche IV (3).gif (121.91 Kio) Vu 9497 fois
Question Dimanche IV (2).gif
Question Dimanche IV (2).gif (120.26 Kio) Vu 9497 fois

A vous de trouver quelle est la propriété représentée sur ces spirales !

(Question du dimanche postée un mardi - n'importe quoi ce forum ! )
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
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6167
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: La Question du Dimanche IV

Message par Marge »

Bonsoir,
Vraiment a priori, les amas lumineux ne pouvant représenter des entiers premiers consécutifs dans N, je suppose que tu as étudié, a maxima, les impairs.
Juste une piste...
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Répondre

Retourner vers « Tous les Pockets »