Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » Le Puzzle de l'Avent 2024
Lephenixnoir En ligne Administrateur Points: 24719 Défis: 170 Message

Le Puzzle de l'Avent 2024

Posté le 01/12/2024 17:58

Décembre, c'est attendre les fêtes dans une ambiance cozy, un plaid sur le dos et une tasse de thé à la main, avec un puzzle sous les yeux et du Python pour se remuer les neurones. Et vous toutes et tous invité·es !

Pour le principe de l'événement et les lots qui sont à remporter (une Graph Math+ moddée et une coque ou housse), voyez l'article d'annonce de l'événement. Je ne vous remets ici que les points principaux

  • Presque chaque jour de Décembre, je posterai un problème à résoudre, qui prendra cette année la forme d'un programme Python ayant un souci de performance ou de fonctionnalité à corriger.
  • Une fois corrigé le programme Python, lorsque lancé, affichera sa « solution », un gros nombre permettant de décoder les pièces de puzzle du jour.
  • Réassemblez le puzzle pour gagner des lots et le titre de Maître du Puzzle !

Mon intention est d'alterner entre des problèmes « plutôt faciles » (avec 1 jour laissé pour trouver la solution) et des problèmes « plutôt difficiles » (avec 2 jours laissés pour trouver la solution) pour que ce ne soit pas trop la course pour vous.

Si vous trouvez des solutions créatives, mathématiques, algorithmiques qui vous permettent de trouver le résultat sans lancer le programme Python, c'est valide aussi ! Je vous invite à vous en vanter dans les commentaires si ça arrive. Si vous trouvez un moyen de cheese le puzzle entier (i.e. avec une astuce qui marche pour tous les problèmes), vous ne pourrez pas prétendre au lots principaux, mais ça comptera quand même comme une résolution.

En juste admin qui fait trop de choses en même temps, je n'ai pas fini d'apporter les touches finales au puzzle, donc je vous donnerai les pièces du puzzle d'aujourd'hui et le script de décodage demain. Comme vous pouvez le voir à la bannière, le puzzle est pas moche !!

À vos calculatrices dans les commentaires, bon courage tout le monde ! o/

Comment participer ?
Vous aurez besoin d'un ordinateur ou d'une calculatrice avec Python pour résoudre les problèmes et d'un ordinateur avec Python et la bibliothèque Pillow pour décoder les pièces. Téléchargez decode_pieces.py (lien direct) et indiquez vos solutions dedans. Placez-le dans un dossier à côté des images Avent2024_Dec*r.png contenant les pièces brouillées, et exécutez-le pour décoder les pièces. Ensuite, réassemblez le puzzle dans un outil de votre choix (je conseille d'ouvrir les pièces comme des calques dans GIMP).

Liste des problèmes :


Le puzzle a été résolu par :


Fichier joint


1, 2, 3, 4, 5 Suivante
Lephenixnoir En ligne Administrateur Points: 24719 Défis: 170 Message

Citer : Posté le 01/12/2024 18:09 | #


Penguin Programming Party

Cette année toute la communauté de Planète Casio a été invitée à une fête dans le Sud. Très dans le Sud d'ailleurs, puisqu'il s'agit de la première édition de la Penguin Programming Party organisée en terre Adélie. 🐧

Les manchots ont fait appel à vous pour entraîner leur Python-fu et auront un certain nombre de questions, casse-têtes, et autres jeux marrants à vous soumettre. Ils ne sont pas encore très forts en Python mais ils ont l'esprit affûté donc attention à ne pas tomber dans leurs pièges !

Avant votre départ pour l'Antarctique vous avez reçu par pingouin voyageur une petite énigme pour vous échauffer. Déterminez ce que le programme suivant affiche.

def u(n):
    if n == 0:
        return 3
    if n == 1:
        return -7
    return u(n-2) - u(n-1) + 1

print(u(80))

Pièces du jour :


Indice : C'est une suite récurrente, il est plus facile de la calculer en commençant par le bas.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Calamari Hors ligne Membre Points: 404 Défis: 0 Message

Citer : Posté le 01/12/2024 19:29 | #


Besides the end of the event, is there an actual deadline on completion of each puzzle, or is it more of a recommendation so as to not fall too far behind?
“Remember to have fun doing this, or it ain't worth it.” — Robert Alan Koeneke
“They call me the king of the spreadsheets, got 'em all printed out on my bedsheets.” — “Weird Al” Yankovic
Lephenixnoir En ligne Administrateur Points: 24719 Défis: 170 Message

Citer : Posté le 01/12/2024 19:54 | #


That's 100% a recommendation. You can solve all the problems on Dec. 24th if you're confident. As far as how late you can submit your solution, there's no hard limit. Latest I've had was January 2nd last year I think. I usually like to put the full puzzle on a front page article as soon as the prizes are claimed, so submissions after that should provide some scripts or evidence of solving.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lephenixnoir En ligne Administrateur Points: 24719 Défis: 170 Message

Citer : Posté le 01/12/2024 21:43 | #


Puisque je vois que dans le chat il y a de la compétition sur ce premier problème, je propose de comparer. Pour tenir compte des écarts de puissance entre les machines, je suggère le benchmark suivant :

  • (#1) Calculer u(10000), 5000 fois d'affilée (il faut que ça prenne ≥ quelques secondes pour que la mesure soit précise)
  • (#2) Diviser par le calcul de u(40) avec le programme d'origine, qui doit prendre ≈ 10 secondes peu ou prou.

Pour correction, u(10000) commence par 3107 et se termine par 6253.

Sur ma machine #2 prend 12.5 secondes et avec la solution de référence #1 prend 8.9 secondes soit un score de 0.712. Plus c'est bas mieux c'est.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Potter360 Hors ligne Rédacteur Points: 1255 Défis: 2 Message

Citer : Posté le 01/12/2024 21:54 | #


Perso j’ai un score de 0,561, si mes calculs sont bons.
Globalement, coder. Mal, mais coder.
Lephenixnoir En ligne Administrateur Points: 24719 Défis: 170 Message

Citer : Posté le 01/12/2024 21:56 | #


Joli ! J'ai implémenté la solution que j'avais en tête en vous lisant dans #projets, je descends à 0.08.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2425 Défis: 17 Message

Citer : Posté le 01/12/2024 22:02 | #


chez moi en python 3.12 sur un Core i5 9300HF @ 2.40GHz

u(40) originel prend 19.6709s
5000 itérations de u(10000) optimisée prennent 18.3169s

soit un ratio de 0.931

PS : édité car erreur de copier coller
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Hackcell Hors ligne Maître du Puzzle Points: 1534 Défis: 11 Message

Citer : Posté le 01/12/2024 22:48 | #


sur mon tel avec un proco hisilicon kirin 710:

u(40) ~ 81.6 secondes
et 5000 fois u(10000) optimisé pareil

pour un ratio de 1.02

update: second essaie et ratio de 0.55
Fcalva En ligne Membre Points: 607 Défis: 10 Message

Citer : Posté le 01/12/2024 22:52 | #


Sur mon R5 4500U :
#1 = 15.121s
#2 = 20.556s
Pour un ratio de 0.73560, pas mieux que les autres
Pc master race - Apréciateur de Noctua moyen
Caltos : G35+EII, G90+E (briquée )
Slyvtt Hors ligne Maître du Puzzle Points: 2425 Défis: 17 Message

Citer : Posté le 02/12/2024 07:37 | #


Heureusement que tu es là avec ton téléphone Hackcell car sinon mon PC serait complètement à la rue
Faudra que je pense à investir un de ces 4 matins.

(note pour plus tard : prendre un discrete GPU != nvidia !!! j'en peux plus de ces drivers à la con qui me plantent mon système...)

PS pour Lephe : j'avais compris dans l'énoncé du puzzle qu'il fallait corriger des programmes écrits avec les fesses par des Penguins (d'ailleurs est-ce que les penguins ont des fesses à proprement parler ? Mystèèèèèèèèèère ...), mais en fait on peut avoir des programmes "fonctionnel" à optimiser afin que ça ne prenne pas des éons pour obtenir une clef, c'est bien ça ?
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Slyvtt Hors ligne Maître du Puzzle Points: 2425 Défis: 17 Message

Citer : Posté le 02/12/2024 07:42 | #


PPS pour Lephé : pour donner du piment, possible de créer des statuts "Maître du Puzzle 2", "Maître du Puzzle 3", ... afin de motiver ceux qui sont déjà "Maître du Puzzle" ?

Ca préciserait le nombre de puzzles résolus et donnerait le niveau du "Gajo" ou de la "Gajotte" qu'on a en face de nous
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24719 Défis: 170 Message

Citer : Posté le 02/12/2024 08:13 | #


Oui Sly le thème principal ça va être que les programmes marchent mais sont ultra lents... et faudra optimiser. D'aucuns disent que c'est un complot pour vous faire écrire des programmes Python qui tournent efficacement sur la calto. Mais je ne vois pas de quoi ils parlent.

Slyvtt a écrit :
PPS pour Lephé : pour donner du piment, possible de créer des statuts "Maître du Puzzle 2", "Maître du Puzzle 3", ... afin de motiver ceux qui sont déjà "Maître du Puzzle" ?

Par le nombre de puzzles résolus ou par édition ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Eragon En ligne Gardien des bots Points: 484 Défis: 0 Message

Citer : Posté le 02/12/2024 08:19 | #


Par nombre de puzzle résolus.

"Maître du puzzle MK2"
"Maître du puzzle MK3"

On peut trouver un nom plus fun pour ça. Genre "Dionysos" (Le dieu des jeux)
Slyvtt Hors ligne Maître du Puzzle Points: 2425 Défis: 17 Message

Citer : Posté le 02/12/2024 08:30 | #


Comme vous voulez. En fait par exemple Hackcell et certains autres sont déjà porteurs du titre. Donc on verra pas de changement pour eux. Ce serait cool d'avoir un truc spécial (si c'est pas trop chiant à implémenter).
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Critor Hors ligne Administrateur Points: 2717 Défis: 18 Message

Citer : Posté le 02/12/2024 08:45 | #


J'avais fait hier, mais il n'y avait pas encore les consignes pour le score de performances.

Donc sur un Core i7 1260P @ 2,1 GHz avec le même code qu'hier, j'ai un score de 0.515
Eragon En ligne Gardien des bots Points: 484 Défis: 0 Message

Citer : Posté le 02/12/2024 09:31 | #


Slyvtt a écrit :
si c'est pas trop chiant à implémenter

Tkt c'est juste une entrée en db


Eragon: Lance la commande sur le serveur
La v4: Plante
Eragon: Et merde…
Ptitjoz Hors ligne Membre Points: 274 Défis: 10 Message

Citer : Posté le 02/12/2024 11:00 | #


mon ordinosaure cpu 2x 1.3Ghz met 142 secondes pour u(40)
Un peu poète, un peu geek, un peu rêveur, un peu écolo.

Lephenixnoir En ligne Administrateur Points: 24719 Défis: 170 Message

Citer : Posté le 02/12/2024 13:35 | #


Sur suggestion de Kouhai je pense qu'on peut faire encore mieux avec la forme close de la suite... parce que 10000 est assez loin. J'arrive à la calculer sans passer par √5 mais j'ai encore des flottants qui traînent donc c'est pas encore précis. Avec GMP les fractions doivent résoudre le problème.

... je crois que je me suis fait nerd snipe ._.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2425 Défis: 17 Message

Citer : Posté le 02/12/2024 14:43 | #


Be careful ... Rabbit hole ahead !!!

😁🤣
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Cakeisalie5 Hors ligne Ancien administrateur Points: 1967 Défis: 11 Message

Citer : Posté le 02/12/2024 16:21 | #


Si je comprends bien, j'ai un score de 0,112 :

$ ./truc_gmp
truc_gmp [o]<n> [repetitions]
$ ./truc_gmp o10000 5000
3107...6253

duration: 2700037446ns (2.700s)
$ time python omg.py
945165213
python omg.py  24,10s user 0,05s system 99% cpu 24,190 total
$ python -c "print(2700037446 / 24100000000)"
0.1120347487966805

Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
1, 2, 3, 4, 5 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 27 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd