Page 1 of 19

Concours de programmation/algorithmique: "la suite du geek"

Unread postPosted: 08 Feb 2014, 19:50
by critor
Introduction :
A partir de 42, on construit la suite des "nombres du geek" de la manière suivante :
Code: Select all
g1 = 42
g2 = 1412
g3 = 11141112
g4 = 31143112
g5 = 132114132112
g6 = 11131221141113122112



Énoncé :
Réaliser un programme ou une fonction qui, à partir de deux nombres entiers positifs g1 et k (demandés ou pris en paramètre), renvoie ou affiche l’écriture décimale de la valeur gk du k-ième "nombre du geek".

Pour l'exemple ci-dessus le programme répondrait donc avec:
Code: Select all
42 et 1 -> 42
42 et 2 -> 1412
42 et 3 -> 11141112
42 et 4 -> 31143112
42 et 5 -> 132114132112
42 et 6 -> 11131221141113122112
...

Vous devrez aussi:
  • fournir le code source si celui-ci n’est pas affichable à partir du fichier dans la calculatrice ou son logiciel ordinateur
  • expliquer votre algorithme séparément (fichier texte/pdf à part, par exemple).
Le code ne doit en aucune façon contenir de liste précalculée des termes produits en partant de g1=42 ou de toute autre valeur, mais bien les construire lui-même.



Précisions :
Cette suite est à croissance rapide, et certaines calculatrices TI ne calculent d’origine que sur des nombres d’au plus 13 chiffres significatifs.

Dans ce cas, pour traiter l’exemple ci-dessus partant de g1=42 jusqu’à g6 inclus, il vous faudra donc gérer en interne des nombres dépassant cette limite.
Dans le cas d’un résultat renvoyé, on veillera donc à utiliser un type de donnée permettant d'afficher en continu bien plus de 13 chiffres: chaîne de caractères, liste de nombres, matrice...

La totalité des chiffres de l’écriture décimale du nombre devra apparaître de gauche à droite sur une ou plusieurs lignes, avec possibilité de faire défiler horizontalement et/ou verticalement si besoin. Les caractères non numériques seront ignorés.
Exemples d’affichages acceptés pour g2 en partant de g1=42, affichages qui seront indifféremment interprétés comme le nombre 1412 :
Code: Select all
1412
"1412"
{1 4 1 2}
{1,4,1,2}
{14,12}
...




Catégories ouvertes :
Les catégories ouvertes à ce concours sont les suivantes :
  • TI-Basic pour TI-82 Stats (.fr), TI-83, TI-83 Plus (SE), TI-84 Plus (SE), TI-84 Pocket.fr, TI-84 Plus C SE
  • Autre langage pour TI-83 Plus (SE), TI-84 Plus (SE), TI-84 Pocket.fr
  • Tout langage officiel pour la série TI-Nspire (Classic, Touchpad, CM, CX, CAS ou non…)



Lots :
Pour chacune des 3 catégories :
  • 1er prix :    1 TI-Nspire CX CAS (compatible Ndless 3.1) + 1 compte Premium TI-Planet + 4 stickers TI-Planet
  • 2ème prix : 1 TI-83 Plus.fr USB (matériel identique à la TI-84 Plus Silver Edition internationale) + 1 compte Premium TI-Planet + 3 stickers TI-Planet
  • 3ème prix : 1 goodie Texas Instruments (clé USB de 2Go, ou stylo, ou jeu de 52 cartes) + 1 compte Premium TI-Planet + 2 stickers TI-Planet
  • 4ème prix : 1 poster Texas Instruments (au choix) + 1 compte Premium TI-Planet + 2 stickers TI-Planet
  • 5ème prix : 1 porte-documents Texas Instruments (au choix) + 2 stickers TI-Planet
  • 6ème prix : 2 stickers TI-Planet
3316 3311 2573 2571 3312 3313 3314 3315 2343




Evaluation :
Les productions d’une même catégorie seront évaluées sur des machines identiques avec leurs réglages d’usine munies des dernières versions. Outre le respect des consignes précédentes, il sera tenu compte par ordre d’importance des critères suivants :
  1. la production doit être capable de calculer et afficher correctement la totalité de l’exemple du paragraphe d'introduction, et donc de gérer des nombres de plus de 13/14 chiffres significatifs
  2. les nombres doivent être exacts et afficher (après défilement si besoin) la totalité des chiffres de leur écriture décimale pour différentes valeurs de départ g1
  3. le plus grand "nombre du geek" calculable dans un temps raisonnable sans déclencher d'erreur pour différentes valeurs de départ g1

En cas d’égalité, les participations seront départagés avec les critères complémentaires suivants:
  1. le temps de calcul
  2. la taille du fichier calculatrice
  3. la date de réception de la participation



Modalités de participation :
Afin de participer, vous devrez envoyer votre production à l'adresse e-mail info @ tiplanet . org avant le dimanche 11 mai 2014 à 23h59 heure française (GMT+1).
Votre e-mail comportera les informations et fichiers suivants (compressés ou non) :
  • Votre nom, prénom et adresse complète, pour l'envoi du lot si vous gagnez)
  • Le(s) fichier(s) pour calculatrice de votre production
  • Tout autre document requis ou que vous jugerez utile



Mentions légales :
Règlement complet du concours multi-événements organisés sur TI-Planet disponibles ici : sur upecs.org ou ici en archive.

Les données personnelles récoltées font l'objet d'une déclaration CNIL et sont protégées selon la loi du 6 janvier 1978. Vous disposez à tout moment d'un droit d'accès, de modification et de suppression.

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 20:16
by AnToX98
Yes, super :bj:

Sinon, j'ai une question : on doit afficher tous les gk jusqu'à k ou juste gk ?

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 20:20
by critor
Juste le dernier.
Tu n'es pas obligé d'afficher les étapes intermédiaires.

De toutes façons, si le dernier nombre est juste, c'est forcément que les nombres intermédiaires l'étaient aussi ;)

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 20:22
by Hayleia
Excellente idée de concours, et merci de l'avoir ouvert à toutes les calculatrices ^^

J'ai juste une question : pourriez vous nous donner le résultat donné avec un très grand k et un g1 quelconque pour qu'on puisse tester notre programme ?

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 20:25
by critor
Normalement, si tu arrives à franchir la limite logicielle de 13 chiffres (sur z80) avec un résultat juste, tout devrait être bon jusqu'à épuisement de la mémoire disponible.

Mais si tu as besoin de longues séries de nombres, tu peux rechercher "suite de Conway" sur Google ou Wikipedia. ;)

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 20:56
by AnToX98
Tu as été inspiré de l'énigme de TI-France sur leur page facebook ;) ?

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 21:00
by Lionel Debroux
Non, le sujet était en préparation depuis des semaines auparavant ;)

La vitesse du programme pour diverses valeurs des deux arguments fera bien entendu partie des critères de notation.

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 21:07
by Adriweb
Fin octobre, même :P

Bonne chance à tous, by the way :)

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 21:12
by critor
@AnToX98: C'est peut-être plutôt TI-France qui a voulu vous aider en commençant à vous faire réfléchir là-dessus, vu qu'ils ont notre sujet depuis des semaines.

Re: Concours de programmation/algorithmique: "la suite du ge

Unread postPosted: 08 Feb 2014, 21:28
by Persalteas
Superbe idée :) ça va être serré, je pense que beaucoup de gens peuvent y arriver.

Show/Hide spoilerAfficher/Masquer le spoiler
Il y a des algorithmes tout faits sur Wikipedia !

(mais y'a moyen de les optimiser, bien sur :P )


Par contre, j'ai des doutes sur les temps de calcul pour des k>20 sur z80 6MHz, ça va être long...