Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3453 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  24421  24422  24423  ..  27170  27171  27172  27173  27174  27175
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2402604
skeye
Posté le 05-12-2021 à 15:48:10  profilanswer
 

Reprise du message précédent :
Bon, fait en version très verbeuse. Je m'attendais à plus compliqué pour la partie 2. :o

 

https://github.com/mrossard/AOC2021 [...] 5/day5.php


Message édité par skeye le 05-12-2021 à 15:48:22

---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 05-12-2021 à 15:48:10  profilanswer
 

n°2402605
DDT
Few understand
Posté le 05-12-2021 à 16:32:42  profilanswer
 

Bon c'était plus simple aujourd'hui, j'ai utilisé la sparse matrix de breeze sans trop réfléchir. [:sadfrog62:1]  
 
J'ai surtout passé mon temps à trouver comment générer les coordonnées avec une seule méthode pour les deux parties, seulement en changeant un des opérateur de comparaison.
https://github.com/hygt/aoc2021/blo [...] ay05.scala
 
Du coup c'est bien indigeste. [:huit]
 


---------------
click clack clunka thunk
n°2402606
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 05-12-2021 à 16:47:52  profilanswer
 

Non mais genre vous êtes marrant avec vos grilles éparses, vous avez peur de mettre votre ordinateur en rade avec quelques millions d'octets ? :o

n°2402607
gfive
Posté le 05-12-2021 à 17:11:59  profilanswer
 

hephaestos a écrit :

Non mais genre vous êtes marrant avec vos grilles éparses, vous avez peur de mettre votre ordinateur en rade avec quelques millions d'octets ? :o

 


Bah .. je sais pas moi ça m'a paru plus simple de pas modéliser la grille qui ne sert objectivement a rien pour la résolution du problème.

 

Chaque ligne sait retourner l'ensemble des positions qu'elle couvre, ca suffit a la résolution (pour les deux parties, il suffit de filtrer les diagonales pu pas)


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2402608
DDT
Few understand
Posté le 05-12-2021 à 17:19:22  profilanswer
 

hephaestos a écrit :

Non mais genre vous êtes marrant avec vos grilles éparses, vous avez peur de mettre votre ordinateur en rade avec quelques millions d'octets ? :o


Tant qu'à faire l'AoC autant que j'apprenne 2-3 trucs sur les bibliothèques utilisées par mes collègues côté data science.  [:jean-michel platini:1]


---------------
click clack clunka thunk
n°2402609
Flaie
Posté le 05-12-2021 à 17:20:02  profilanswer
 

Oui là modéliser la grille ça sert à rien sur le jour 5, les droites suffisent à elle même :o

n°2402610
R3g
fonctionnaire certifié ITIL
Posté le 05-12-2021 à 17:34:35  profilanswer
 

Bon j'en ai marre : https://pastebin.com/FPPKMjsx
 
Ca fait une heure que j'ai fini et que j'essaie d'améliorer le parsing mais je me fais des noeuds au cerveau.
 
En vous lisant je me rends compte qu'effectivement, modéliser la grille ne sert à rien, une map coordonnées -> nb de lignes qui y passent aurait suffit.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2402611
Kenshineuh
Posté le 05-12-2021 à 17:36:59  profilanswer
 

J'avoue qu'en JS celui si je sais pas trop comment faire.

 

Ma solution simple c'est genre de créer un tableau à deux dimensions de genre 1000x1000 mais bon. :o


Message édité par Kenshineuh le 05-12-2021 à 17:37:11
n°2402612
flo850
moi je
Posté le 05-12-2021 à 17:45:42  profilanswer
 

c'est ce que j'ai fait
déjà 1000 1000, ca ne fait qu'un million d'entier, donc balec
 
et en js, les arrays sont des sparses array, donc ça ne coute pas si cher


---------------

n°2402613
Flaie
Posté le 05-12-2021 à 18:04:49  profilanswer
 

R3g a écrit :

Bon j'en ai marre : https://pastebin.com/FPPKMjsx
 
Ca fait une heure que j'ai fini et que j'essaie d'améliorer le parsing mais je me fais des noeuds au cerveau.
 
En vous lisant je me rends compte qu'effectivement, modéliser la grille ne sert à rien, une map coordonnées -> nb de lignes qui y passent aurait suffit.


Pour un input si simple je m'emmerde même pas à split, t'es juste intéressé par les entiers que tu trouves sur chaque ligne au final
 
soit en one shot, soit ligne par ligne si le fichier est vraiment huge

Code :
  1. with open('day5.txt', 'r') as f:
  2.     nums = re.findall(r'\d+', f.read())
  3.     ranges = [nums[i:i+4] for i in range(0, len(nums), 4)] # [[x1, y1, x2, y2], ...]

mood
Publicité
Posté le 05-12-2021 à 18:04:49  profilanswer
 

n°2402614
Kenshineuh
Posté le 05-12-2021 à 18:06:41  profilanswer
 

flo850 a écrit :

c'est ce que j'ai fait
déjà 1000 1000, ca ne fait qu'un million d'entier, donc balec
 
et en js, les arrays sont des sparses array, donc ça ne coute pas si cher


 
:jap:

n°2402615
R3g
fonctionnaire certifié ITIL
Posté le 05-12-2021 à 18:09:51  profilanswer
 

R3g a écrit :

Bon j'en ai marre : https://pastebin.com/FPPKMjsx
 
Ca fait une heure que j'ai fini et que j'essaie d'améliorer le parsing mais je me fais des noeuds au cerveau.
 
En vous lisant je me rends compte qu'effectivement, modéliser la grille ne sert à rien, une map coordonnées -> nb de lignes qui y passent aurait suffit.


v2 sans la grille : https://pastebin.com/fBc2brqq
mais c'est un poil plus lent


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2402616
___alt
Posté le 05-12-2021 à 18:28:05  profilanswer
 

gfive a écrit :

non mais on est ok sur l'infinite grid, mais objectivement ici ça sert à rien :o

 

Tu devrais plutôt regarder par chez toi pour le code qui sert à rien, parce que générer à la main equals et hashCode pour un type record c'est pas la peine, le compilateur l'a déjà fait.
Et plutôt qu'une Enum direction, je trouve qu'une class Segment avec une méthode isStraight() fait mieux le job en étant plus explicite et moins verbeux. Vu que t'avais déjà la classe Line, ça aurait été plus simple imho.

Message cité 1 fois
Message édité par ___alt le 05-12-2021 à 18:34:26

---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402618
Flaie
Posté le 05-12-2021 à 18:34:56  profilanswer
 

Tout ce boilerplate alors qu'on a juste besoin d'une liste et d'une hashmap  [:biiij:3]

n°2402619
___alt
Posté le 05-12-2021 à 18:37:17  profilanswer
 

Flaie a écrit :

Tout ce boilerplate alors qu'on a juste besoin d'une liste et d'une hashmap  [:biiij:3]


 
Donner de la sémantique à ses collections c'est pas du boilerplate monsieur :o
Maintenant je reconnais que si j'avais des type alias, ça serait un peu plus simple.
gfive c'est un bourrin, il extend ArrayList, le truc qui en temps normal est un code smell qui se sent depuis l'espace :D


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402620
Flaie
Posté le 05-12-2021 à 18:40:03  profilanswer
 

___alt a écrit :


 
Donner de la sémantique à ses collections c'est pas du boilerplate monsieur :o
Maintenant je reconnais que si j'avais des type alias, ça serait un peu plus simple.
gfive c'est un bourrin, il extend ArrayList, le truc qui en temps normal est un code smell qui se sent depuis l'espace :D


Tu peux donner des noms aux variables pour leur donner un sens :D
 
J'avoue qu'étendre directement ArrayList c'est smelly de très loin :lol:

n°2402621
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 05-12-2021 à 18:45:36  profilanswer
 

hephaestos a écrit :


 
https://pastebin.com/bAPS8V9d
 
Dernier problème que je n'arrive pas à résoudre, si des experts sauraient m'aider... incapable de faire compiler/marcher un truc du genre :
 

Code :
  1. auto row_columns = ::ranges::views::concat(rows(board[0]), columns(board[0])) | to<vector<vector<int>>>;


 
Je peux lire les colonnes et les rangées séquentiellement, mais concaténer les deux ça semble verboten. Sauf bien sûr si je les matérialise séparément d'abords, mais bon...
 

Code :
  1. // Ça j'ai le droit...
  2.     auto r =  rows(boards[0]) | to<vector<vector<int>>>;
  3.     auto c = columns(boards[0]) | to<vector<vector<int>>>;
  4.     auto rc = ::ranges::views::concat(r,c) | to<vector<vector<int>>>;



 
Tu utilises quel compilateur ?


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2402622
___alt
Posté le 05-12-2021 à 18:46:59  profilanswer
 

Après mon approche habituelle des advent of code c'est :  
- progresser en résolution de problèmes / algos
- découvrir des fonctionnalités du langage que j'utilise
- faire dans la mesure du possible du code qui passerait la code review dans les équipes où je bosse
 
Du coup clairement je découpe/abstrait plus que strictement requis, mais ça m'aide aussi à structurer ma pensée donc c'est pas non plus complètement perdu :o


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402623
gfive
Posté le 05-12-2021 à 18:53:17  profilanswer
 

___alt a écrit :

 

Tu devrais plutôt regarder par chez toi pour le code qui sert à rien, parce que générer à la main equals et hashCode pour un type record c'est pas la peine, le compilateur l'a déjà fait.
Et plutôt qu'une Enum direction, je trouve qu'une class Segment avec une méthode isStraight() fait mieux le job en étant plus explicite et moins verbeux. Vu que t'avais déjà la classe Line, ça aurait été plus simple imho.

 

J'ai besoin d'un hashcode correct parce que je mets les positions comme clé de la Map...et comme j'utilise record pour la seconde fois, je sais pas encore tout ce qu'il y a dedans.
Mais effectivement il y a des trucs en trop la dedans.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2402624
Flaie
Posté le 05-12-2021 à 18:55:45  profilanswer
 

___alt a écrit :

Après mon approche habituelle des advent of code c'est :  
- progresser en résolution de problèmes / algos
- découvrir des fonctionnalités du langage que j'utilise
- faire dans la mesure du possible du code qui passerait la code review dans les équipes où je bosse
 
Du coup clairement je découpe/abstrait plus que strictement requis, mais ça m'aide aussi à structurer ma pensée donc c'est pas non plus complètement perdu :o


Je viens de regarder plus en détail ton code, je trouve ça très bien, les choses "améliorable":
- regrouper partOne et partTwo en appel d'une seule fonction avec un predicat car c'est le même code ligne pour ligne.
- pour InfinityGrid, si tu as apache commons dans tes dépendances tu peux remplacer la HashMap et le Counter qu'ils utilisent par un HashBag, less code.
- le get dans InfinityGrid qui modifie le state, ça casse un peu la sémantique comme tu dis

n°2402626
___alt
Posté le 05-12-2021 à 19:05:00  profilanswer
 

Flaie a écrit :


Je viens de regarder plus en détail ton code, je trouve ça très bien, les choses "améliorable":
- regrouper partOne et partTwo en appel d'une seule fonction avec un predicat car c'est le même code ligne pour ligne.
- pour InfinityGrid, si tu as apache commons dans tes dépendances tu peux remplacer la HashMap et le Counter qu'ils utilisent par un HashBag, less code.
- le get dans InfinityGrid qui modifie le state, ça casse un peu la sémantique comme tu dis


 
J'ai effectivement pas factorisé le code commun, j'ai eu un peu la flemme mais oui, à un prédicat près c'est la même chose.
J'essaye dans la mesure du possible de pas utiliser de lib externe si je peux m'en passer facilement, mais effectivement ce serait mieux.
L'idée derrière l'infinity grid c'est que tu peux préciser un Supplier pour définir ce qu'est une case vide et l'initialisation d'une case vide est par définition lazy, donc au moment du get(). Ici j'ai une grille infinie de compteurs à 0.
En vrai je pourrais utiliser un AtomicInteger ici et pas mon propre compteur qui n'a pas beaucoup de valeur ajoutée.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402628
R3g
fonctionnaire certifié ITIL
Posté le 05-12-2021 à 19:24:26  profilanswer
 

https://rehost.diberie.com/Picture/Get/r/55071
[:dawa]


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2402629
___alt
Posté le 05-12-2021 à 19:24:54  profilanswer
 

gfive a écrit :


 
J'ai besoin d'un hashcode correct parce que je mets les positions comme clé de la Map...et comme j'utilise record pour la seconde fois, je sais pas encore tout ce qu'il y a dedans.
Mais effectivement il y a des trucs en trop la dedans.


 
Si les coordonnées sont les mêmes, le hashCode sera le même, donc c'est safe, tu peux y aller :jap:


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402630
Flaie
Posté le 05-12-2021 à 19:39:24  profilanswer
 


 :sol:  
 
J'ai découvert p5js aujourd'hui, j'ai fait une animation de mon input: https://i.ibb.co/nkGjKc2/output.gif (GIF 10MB)

n°2402631
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 05-12-2021 à 19:42:32  profilanswer
 

Xavier_OM a écrit :

 

Tu utilises quel compilateur ?


GCC 12

n°2402633
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 05-12-2021 à 20:01:23  profilanswer
 


 
Je testerai demain mais j'ai l'impression que c'est ok avec MSVC. Regarde sur www.godbolt.org ptet pour tester un autre compilateur


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2402634
nraynaud
lol
Posté le 05-12-2021 à 20:02:44  profilanswer
 

je viens de regarder l'aoc, personne n'utilise de range tree?


---------------
trainoo.com, c'est fini
n°2402635
Flaie
Posté le 05-12-2021 à 20:13:34  profilanswer
 

nraynaud a écrit :

je viens de regarder l'aoc, personne n'utilise de range tree?


Non mais je veux bien voir une implémentation avec si tu sais pas quoi faire ce soir

n°2402637
ratibus
Posté le 05-12-2021 à 20:22:11  profilanswer
 

Rha fais chier j'ai raté une occasion d'utiliser le spaceship operator de PHP : https://github.com/vuryss/aoc-php/b [...] y5.php#L71 (opérateur apparu en 7.0)  :cry:


---------------
Mon blog
n°2402638
nraynaud
lol
Posté le 05-12-2021 à 20:22:27  profilanswer
 

Flaie a écrit :


Non mais je veux bien voir une implémentation avec si tu sais pas quoi faire ce soir


Je suis en train de réfléchir, j’ai à moitié la flemme parce que pour tenir la complexité il faut équilibrer, mais c’est vrai que faire apparaître les intersections sans jamais dérouler les points est séduisant.


---------------
trainoo.com, c'est fini
n°2402640
ratibus
Posté le 05-12-2021 à 20:29:27  profilanswer
 

J'aime bien cette solution aussi : https://github.com/kirara/advent-of [...] 21/05b.php
Le for avec 2 variables je m'en rappelais plus :d


---------------
Mon blog
n°2402641
nraynaud
lol
Posté le 05-12-2021 à 20:51:10  profilanswer
 

Flaie a écrit :


Non mais je veux bien voir une implémentation avec si tu sais pas quoi faire ce soir


en fait le plus malin c'est plutôt un scan beam, ça a la même complexité asymptotique, mais ça nécessite une passe sur les lignes avant de démarrer.


---------------
trainoo.com, c'est fini
n°2402642
ratibus
Posté le 05-12-2021 à 21:19:24  profilanswer
 

Y a vraiment des tarés aux US : https://twitter.com/RepThomasMassie [...] 3127422979


---------------
Mon blog
n°2402643
skeye
Posté le 05-12-2021 à 21:23:20  profilanswer
 

ratibus a écrit :

Rha fais chier j'ai raté une occasion d'utiliser le spaceship operator de PHP : https://github.com/vuryss/aoc-php/b [...] y5.php#L71 (opérateur apparu en 7.0)  :cry:


 
J'y pense jamais à celui-ci. :D


---------------
Can't buy what I want because it's free -
n°2402644
ratibus
Posté le 05-12-2021 à 21:24:13  profilanswer
 

skeye a écrit :


 
J'y pense jamais à celui-ci. :D


En plus pendant toute la résolution du problème d'aujourd'hui, je me demandais s'il n'y avait pas directement une fonction PHP qui faisait ça...
 
J'aime bien l'usage du sscanf aussi, ça va aider sur des parsing :D


Message édité par ratibus le 05-12-2021 à 21:24:52
n°2402645
Flaie
Posté le 05-12-2021 à 21:26:14  profilanswer
 

On vient de regarder le premier épisode de Wheel of Time sur Amazon Prime.
 
Quelle purge.

n°2402646
ratibus
Posté le 05-12-2021 à 21:29:28  profilanswer
 

De mon côté je suis en train de binge watcher The Office US qui est sur Netflix depuis quelques semaines :D
J'avais commencé à regarder il y a quelques années mais j'avais pas terminé.
J'ai repris depuis le début et je viens de finir la saison 5 :love:


---------------
Mon blog
n°2402647
gfive
Posté le 05-12-2021 à 21:33:29  profilanswer
 

___alt a écrit :

 

Si les coordonnées sont les mêmes, le hashCode sera le même, donc c'est safe, tu peux y aller :jap:

 

Oui je suis allé lire la doc de record a ce sujet :o

 

Et du coup j'ai viré aussi l'enum et un des filtres en tenant compte du fait qu'il n'y a que des lignes horizontales, verticales et diagonales dans le jeu de données.

 

Et utilisé un peu plus les streams.. ça donne ça
D05.java


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2402648
masklinn
í dag viðrar vel til loftárása
Posté le 05-12-2021 à 21:44:11  profilanswer
 

ratibus a écrit :

Rha fais chier j'ai raté une occasion d'utiliser le spaceship operator de PHP : https://github.com/vuryss/aoc-php/b [...] y5.php#L71 (opérateur apparu en 7.0)  :cry:


Je trouve toujours cet ajout amusant quand python a fait sauter cmp en P3, et que j'ai pas souvenir de l'avoir utilisé quand il était présent, ou qu'il m'ait manqué depuis :D


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2402649
masklinn
í dag viðrar vel til loftárása
Posté le 05-12-2021 à 21:45:56  profilanswer
 

ratibus a écrit :

J'aime bien cette solution aussi : https://github.com/kirara/advent-of [...] 21/05b.php
Le for avec 2 variables je m'en rappelais plus :d


C'est juste un for c-style illisible non?
 
Tu peux avoir autant d'expressions que tu veux dans les clauses.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2402650
beel1
Posté le 05-12-2021 à 22:31:52  profilanswer
 

hephaestos a écrit :

Non mais genre vous êtes marrant avec vos grilles éparses, vous avez peur de mettre votre ordinateur en rade avec quelques millions d'octets ? :o


Milliers steuplaît [:aloy]
1024*1024*2bits ça fait 256kio :o
Du coup ça tourne sur GBA :o
https://twitter.com/lunasorcery/sta [...] 5071483914

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  24421  24422  24423  ..  27170  27171  27172  27173  27174  27175

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)