Suite de l'Avent du Code, jour 8.
Enfin un peu d'exploration. Les lutins veulent installer leur cabane dans une plantation d'arbres, avec la meilleure vue possible. Vous les y aider muni d'une carte.
Suite de l'Avent du Code, jour 8.
Enfin un peu d'exploration. Les lutins veulent installer leur cabane dans une plantation d'arbres, avec la meilleure vue possible. Vous les y aider muni d'une carte.
# python procédural, moche mais efficace
Posté par steph1978 . Évalué à 3.
Même méthode pour les deux parties : un parcours de chaque position d'une matrice. Pour chaque position, regarder à gauche, à droite, en haut, en bas. Ça donne pas un code très beau mais ça marche.
part 1
part 2
Encore plus moche car le code à répéter quatre fois est plus long.
[^] # Re: python procédural, moche mais efficace
Posté par Yth (Mastodon) . Évalué à 3.
Mon premier parcours est moins bourrin, je ne cherche pas à savoir pour chaque arbre s'il est visible, mais bien à noter les arbres vus depuis chaque angle de vue, donc au lieu d'avoir
size=width*height
traitements, j'en ai2*(width+height)
.Pour la seconde partie c'est algorithmiquement équivalent :
[^] # Re: python procédural, moche mais efficace
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 4.
Une petite optimisation pour la première partie : si on arrive à une hauteur de 9, pas la peine de regarder plus loin, aucun arbre ne sera plus haut que ça.
Mais bon, la seconde partie est bien plus coûteuse en temps de toute façon.
[^] # Re: python procédural, moche mais efficace
Posté par steph1978 . Évalué à 2. Dernière modification le 08 décembre 2022 à 15:43.
Tu as eu une meilleure approche pour le première partie en effet. Il vaut mieux considérer les bords (N2) que toute les position de la grille (N3).
En pratique
all
va s'arrêter au premierFalse
, ce qui fait que les chronos sont assez poche (0:33 pour les deux). Aussi parce que N est petit (N=99) et que lancer l'interpréteur est incompressible. Mais en théorie, c'est bien meilleur.# Python avec Numpy
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 4.
Bon, j'ai sorti Numpy du coup. C'est modélisé, et assez long en fait.
# Procrastination
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 3.
Alors qu'on a enfin quitté le camp pour aller chercher des caramboles, je ne peux m'empêcher que ça procrastine encore :
– Voilà, le verger c'est par là…
– Oh, regardez, la forêt que nous avons planté il y a quelques années, on pourrait y construire une cabane !
– Oui, super, ça nous changera les idées. Lutin drone-opérateur, tu nous cartographie ça ?
– Patron, venez nous donner un coup de main pour calculer le meilleur emplacement pour notre cabane au lieu d'essayer de régler votre communicateur. On vous l'a déjà dit, il est défectueux, et vous aurez tout le temps pour le réparer plus tard. On a plus important à faire là !
– Et les fruits pour les rennes alors ?
– Les quoi ? Ah, ça… On n'y est pas encore, soyez patient. Vous êtes pressé, vous avez un rendez-vous qui approche ou quoi ?
[^] # Re: Procrastination
Posté par Yth (Mastodon) . Évalué à 3.
Ouais, c'est des glandus ces elfes, on dirait moi le lundi matin…
[^] # Re: Procrastination
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 4.
Faut tenir 24 jours remarque. Alors faire un tour du jardin et dans tous les ateliers ne semble pas complètement inopportun.
Je te rappelle, tout de même, que la livraison se fait en une seule fois pour tout le monde, alors, forcément.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
# En faisant pivoter la forêt
Posté par gled . Évalué à 1.
Une version sans doute pas du tout optimisée pour compter les arbres visibles depuis les lisières, faisant pivoter le tuple des arbres.
J'imagine qu'en faiasant le même principe avec numpy, ce sera bien plus optimisé.
[^] # Re: En faisant pivoter la forêt
Posté par Yth (Mastodon) . Évalué à 2. Dernière modification le 10 décembre 2022 à 20:25.
Ya ça en numpy :
https://numpy.org/doc/stable/reference/generated/numpy.rot90.html
J'aime bien l'idée, c'est bourrin, c'est fun, ça fait du code plus léger, et ça ressemble à ce qu'on ferait à la main avec une maquette ou une feuille de papier : on fait tourner (ou on tourne autour) !
Par contre c'est faux je pense.
Il y a des arbres visibles depuis plusieurs côtés, et tu vas les compter plusieurs fois…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.