Dimanche dernier, j'avais un peu de temps et j'en ai profité pour faire un petit check-up du vétéran des ordinateurs personnels de la maison.
J'en ai profité pour lui connecter une petite télé THOMSON qui affiche l'écran 40 col. ou graphique . Ce qui me permet d'avoir simultanément les deux écrans sous les yeux sans avoir à switcher entre les deux modes de mon moniteur Commodore 1801.
Pour tester tout cela, j'ai écrit, un peu vite, un petit programme, très simple, qui dessine une Spirale d'Ulam dont la capture d'écran a fait l'objet d'une question du dimanche.
Certains, on très vite trouvé.
Par contre, j'ai bien du mal à l'optimiser, la raison principale est que je suis incapable de trouver la relation entre les nombres et leurs coordonnées sur la spirale.
L'objet de ce M.P.O. ne sera pas de tracer une spirale, la plupart de nos calculettes ne sont pas graphiques.
Non, la motivation de ce M.P.O. est de m'aider à trouver un code simple et efficace qui me permette de trouver la relation entre le nombre et ses coordonnées sur la spirale.
Si vous acceptez le défit, merci de me proposer vos meilleurs codes pour déterminer les coordonnées (x,y) d'un nombre n sur la spirale d'Ulam à l'aide de votre calculette ou pocket préféré.
Pour que nous fournissions les mêmes résultats, nous considéreront la spirale générée de la façon suivante :
où
N est un nombre entier strictement positif
x est l'abscisse (c'est à dire la position relative entière sur l'axe horizontal : négatifs à gauche et positifs à droite de l'origine)
y est l'ordonnée (c'est à dire la position relative sur l'axe vertical : négatifs en bas et positifs en haut)
L'origine des coordonnées étant centrée sur le nombre 1 placé au centre de la spirale.
Ainsi, nous obtenons les coordonnée suivantes pour ces quelques exemples :
Code : Tout sélectionner
N x , y
------ ---- ----
1 0 0
9 1 -1
15 0 2
21 -2 -2
401 -10 10
13987 -59 -3
47217 109 19
100916 50 159
Si possible, le code proposé devra prendre N en argument, saisi par l'utilisateur d'une façon ou d'une autre, puis afficher (ou imprimer) le couple de coordonnées (x,y) soit simultanément, soit dans l'ordre x puis y .
Mais bon, avec de très vieux machins, on comprendra que l'ordre inverse puisse/doivent être obtenu, ou qu'il faille appuyer sur une touche spécifique (ou bizarre) pour swapper de l'une à l'autre des deux coordonnées.