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

 

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

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  24419  24420  24421  ..  27169  27170  27171  27172  27173  27174
Auteur Sujet :

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

n°2402522
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 04-12-2021 à 14:12:47  profilanswer
 

Reprise du message précédent :


 
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>>>;

mood
Publicité
Posté le 04-12-2021 à 14:12:47  profilanswer
 

n°2402523
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 04-12-2021 à 14:21:25  profilanswer
 

Flaie a écrit :


Ben il a l'air très fort.

 

j'ai plusieurs problèmes qui m'ont fait transpirer l'an dernier, genre le jour 20 ou j'ai mis 8h, dont 2 rien que pour la première partie, c'est pas compliqué le jour la j'ai pa du bosser du tout :D

 

le j19 aussi j'ai mis 1h

 

et ces temps c'est pour une solution gros degueulasse, pas un truc joli à coloriser sur carbon sh

 

Ouais il est fort. Après c'est pas une brute de vitesse, il est dans tes temps en général. Lui son truc c'est les marathons : des concours ou tu as typiquement une semaine pour faire le code le plus performant, sur un problème qui n'a pas de solution optimale. Il avait fait 9ème à un marathon de ce genre : https://www.topcoder.com/challenges [...] 4dca5ff7a3

 

Mais bon, globalement je confirme que j'ai une meilleure place sur le leaderboard HFr que sur le celui de mon équipe au boulot [:didier frogba:5]

 

Je désespère pas, transis d'ennui, ils finiront pas abandonner...


Message édité par hephaestos le 04-12-2021 à 14:23:30
n°2402524
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 14:32:29  profilanswer
 

Devil'sTiger a écrit :


EDIT: la lecture du fichier est immonde, le reste ca va :D


Pour ça, un truc qui serait probablement plus propre c'est de créer ton itérateur, en tirer la première ligne directement (via un appel explicite à `.next()`) pour parser ton draw, puis faire l'itération qui gère les boards, ça évite des cas particuliers.
 
Je vois aussi pas trop pourquoi tu as un `reset`, tout ce qui est dedans pourrait aller directement dans le cas `line.is_empty()` non?
 
Et comme les jours précédents t'as beaucoup d'annotations de types qui sont pas nécessaires.
 
Ah et un autre truc qui peut être utile avec les itérateurs Rust: les adapteurs marchent par conversion (ils prennent possession de l'étape précédente de la chaine) mais tu peux utilise `by_ref()` pour y pallier, ça permet de créer des "sous-itérateurs" que tu peux adapter pour des sections de l'itérateur principal.
 
Ici tu pourrais faire un truc genre `lines.by_ref().take_while(|line| !line.is_empty())` qui va te donner toutes les lignes du board sans te poser plus de question, genre https://play.rust-lang.org/?version [...] 8267b5ab5e, faut juste gérer correctement la situation où t'es en fin d'itération et il n'y a plus de boards à consommer (pour éviter une boucle infinie).
 
edit: chuis con en fait on peut utiliser la propriété que le chunker consomme la ligne vide, donc un peek() sur l'itérateur principal suffit amplement: https://play.rust-lang.org/?version [...] 3d0da51501

Message cité 1 fois
Message édité par masklinn le 04-12-2021 à 14:36:00

---------------
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°2402525
___alt
Posté le 04-12-2021 à 14:37:31  profilanswer
 

flo850 a écrit :

C'est le téléthon au fait, n'oubliez pas de vous payer un bout de karma


 
Non, la plupart des assos de malades te diront que le téléthon c'est de la merde misérabiliste, y'a 100x mieux à faire.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402526
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 14:38:45  profilanswer
 

Devil'sTiger a écrit :

Le rust qui va bien:

 

https://pastebin.com/kQ6Muia9

 

EDIT: la lecture du fichier est immonde, le reste ca va :D


Code :
  1. match cell.selected {
  2.    true => None,
  3.    false => Some(cell.number)
  4. }


BEHOLD: https://doc.rust-lang.org/std/primi [...] ethod.then

 

Donc cell.selected.not().then(|| cell.number)  [:latex_]

Spoiler :

faut penser à use std::ops::Not par contre, pour avoir Not::not

 

(sinon `if` ça marche bien sur les booléens :D)


Message édité par masklinn le 04-12-2021 à 14:40:01

---------------
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°2402527
___alt
Posté le 04-12-2021 à 14:43:11  profilanswer
 

Sans parler implémentation concrète dans tel ou tel langage, niveau algos et représentations vous avez modélisé ça comment ?


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402528
Flaie
Posté le 04-12-2021 à 14:48:24  profilanswer
 

___alt a écrit :

Sans parler implémentation concrète dans tel ou tel langage, niveau algos et représentations vous avez modélisé ça comment ?


j'ai fait le truc bateau de chez bateau.
 
une liste d'entiers pour les nombres appelés  
une liste de boards, chaque board étant une liste de liste d'entiers.
 
une fonction pour vérifier qu'un board est gagnant donc est-ce qu'une horizontale ou verticale est contenue entièrement dans la liste des nombres appelés.
 
une autre pour récupérer le reste (d'ailleurs ça pourrait être des opérations d'ensemble, tout simplement).
 
et l'algo est basique, on découvre un à un les nombres appelés et pour chaque itération on vérifie si y'a un board qui gagne.
 
pour la partie 2 on s'assure que tous les boards ont gagné donc on s'arrête plus au premier et pour le dernier qui gagne je refait le calcul demandé.


Message édité par Flaie le 04-12-2021 à 14:48:52
n°2402529
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 04-12-2021 à 14:51:32  profilanswer
 

___alt a écrit :

Sans parler implémentation concrète dans tel ou tel langage, niveau algos et représentations vous avez modélisé ça comment ?

 


Représentation : une liste par feuille.

 

Algo : à chaque coup je parcours toutes les cases, et je marque celles qui correspondent. Ensuite je vérifie qui a gagné.

 

Masklinn plus haut expliquait une structure plus adaptée (si on part du principe qu'on va devoir traiter des grilles de 1000x1000 par paquet de 1M), en maintenant un index valeur-> position, qui permet de ne pas scanner toutes les valeurs à chaque coup.


Message édité par hephaestos le 04-12-2021 à 14:53:47
n°2402530
Devil'sTig​er
Posté le 04-12-2021 à 14:53:53  profilanswer
 

masklinn a écrit :


Je vois aussi pas trop pourquoi tu as un `reset`, tout ce qui est dedans pourrait aller directement dans le cas `line.is_empty()` non?


 
Je me suis certainement planté, je suis juste allé vite dans l'algo ;)
 

masklinn a écrit :


Et comme les jours précédents t'as beaucoup d'annotations de types qui sont pas nécessaires.


 
Je fais un language typé, je type [:zedlefou:1]
 
Plus sérieusement j'aime bien typer, mais pour Rust c'est une assez mauvaise habiute je pense. Pareil par exemple `t.len() == 0` je préfère a `t.is_empty()` perso...
 

masklinn a écrit :


Ici tu pourrais faire un truc genre `lines.by_ref().take_while(|line| !line.is_empty())` qui va te donner toutes les lignes du board sans te poser plus de question, genre https://play.rust-lang.org/?version [...] 8267b5ab5e, faut juste gérer correctement la situation où t'es en fin d'itération et il n'y a plus de boards à consommer (pour éviter une boucle infinie).


 
Clairement c'est ce que j'ai tendance a ne pas assez voir, pareil le `cell.selected.not().then(|| cell.number)`, idem, trop dans le game :D Après j'ai toujours cette hésitation de comment ca compile vs le match par exemple (en gros l'opti de ca), mais peut être je me fais trop de bille et Rust sait bien gérer l'opti d'une chaine comme ca peut être ?
 
Par contre, ca demande une bonne connaissance de toutes les fonctions dispo, et clairement j'ai pas assez cette partie là en tête pour le moment (mais je le sais depuis pas mal de temps, c'est ce qui me limite le plus en Rust la maintenant).
 

masklinn a écrit :


edit: chuis con en fait on peut utiliser la propriété que le chunker consomme la ligne vide, donc un peek() sur l'itérateur principal suffit amplement: https://play.rust-lang.org/?version [...] 3d0da51501


C'est tout de suite plus propre clairement  :jap:  

n°2402531
gfive
Posté le 04-12-2021 à 14:54:26  profilanswer
 

___alt a écrit :

Sans parler implémentation concrète dans tel ou tel langage, niveau algos et représentations vous avez modélisé ça comment ?

 

Le board c'est les sommes des lignes et des colonnes, plus une Map valeur -> position.

 

Comme ça lors du tirage, je soustrais la valeur aux sommes de la ligne et de la colonne qui la contient, et je sais instantanément si ça rend la grille gagnante.

 


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
mood
Publicité
Posté le 04-12-2021 à 14:54:26  profilanswer
 

n°2402532
skeye
Posté le 04-12-2021 à 14:58:14  profilanswer
 

___alt a écrit :

Sans parler implémentation concrète dans tel ou tel langage, niveau algos et représentations vous avez modélisé ça comment ?

 
Spoiler :


Un tableau 2D pour chaque board, et je stocke en rab le total du board pour pouvoir soustraire au fur et à mesure des tirages, et 2 tableaux "de travail" avec le nb de cases "tirées" pour chaque ligne et chaque colonne.
Après à chaque tirage j'incrémente les tableaux, je soustrais du total, et je vérifie si j'ai tiré autant de cases dans la ligne/colonne que sa taille.


Message édité par skeye le 04-12-2021 à 14:58:52

---------------
Can't buy what I want because it's free -
n°2402533
___alt
Posté le 04-12-2021 à 14:58:31  profilanswer
 

gfive a écrit :


 
Le board c'est les sommes des lignes et des colonnes, plus une Map valeur -> position.
 
Comme ça lors du tirage, je soustrais la valeur aux sommes de la ligne et de la colonne qui la contient, et je sais instantanément si ça rend la grille gagnante.
 


 
Ah putain c'est malin ça.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2402534
skeye
Posté le 04-12-2021 à 15:03:56  profilanswer
 

gfive a écrit :

 

Le board c'est les sommes des lignes et des colonnes, plus une Map valeur -> position.

 

Comme ça lors du tirage, je soustrais la valeur aux sommes de la ligne et de la colonne qui la contient, et je sais instantanément si ça rend la grille gagnante.

 


 

ouais comme moi en fait, sauf que tu fais descendre les sommes à zéro au lieu de compter les cases tirées jusqu'à la longueur de la ligne/colonne :D

Message cité 2 fois
Message édité par skeye le 04-12-2021 à 15:06:26

---------------
Can't buy what I want because it's free -
n°2402535
R3g
fonctionnaire certifié ITIL
Posté le 04-12-2021 à 15:09:53  profilanswer
 

wtf le truc m'a dit que ma réponse à la part 1 était too low, ça fait 20 minutes que je cherche le bug, et en fait je me rends compte qu'il m'a donné l'étoile et débloqué la part 2  [:ktulu]


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2402536
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 04-12-2021 à 15:12:23  profilanswer
 

skeye a écrit :


 
ouais comme moi en fait, sauf que tu fais descendre les sommes à zéro au lieu de compter les cases tirées jusqu'à la longueur de la ligne/colonne :D


Le fait d'avoir une map nombre->position est aussi significatif dans cette approche, notamment parce qu'elle permet de jouer chaque coup en O(1).

n°2402537
skeye
Posté le 04-12-2021 à 15:12:32  profilanswer
 

R3g a écrit :

wtf le truc m'a dit que ma réponse à la part 1 était too low, ça fait 20 minutes que je cherche le bug, et en fait je me rends compte qu'il m'a donné l'étoile et débloqué la part 2  [:ktulu]


et la solution qu'il t'affiche est bien identique à ce que tu as trouvé? :D

Message cité 1 fois
Message édité par skeye le 04-12-2021 à 15:12:42

---------------
Can't buy what I want because it's free -
n°2402538
skeye
Posté le 04-12-2021 à 15:19:32  profilanswer
 

hephaestos a écrit :


Le fait d'avoir une map nombre->position est aussi significatif dans cette approche, notamment parce qu'elle permet de jouer chaque coup en O(1).


Vu la taille de l'input je préfère avoir une représentation plus littérale.:D

 

[edit]

 

En cas de besoin d'un parcours plus rigolo en partie 2 ça paraissait plus prudent.:o


Message édité par skeye le 04-12-2021 à 15:21:03

---------------
Can't buy what I want because it's free -
n°2402539
flo850
moi je
Posté le 04-12-2021 à 15:25:28  profilanswer
 

___alt a écrit :

 

Non, la plupart des assos de malades te diront que le téléthon c'est de la merde misérabiliste, y'a 100x mieux à faire.


Oui
Mais malgré tout ça finance pas mal de recherches et d'essais
Après la gamine mise en avant pour avoir été guérie du sma l'a été grace a un traitement d'un labo privé (Novartis)

 

Édit : tu te rends compte que c'est une problématique qui me touche de prêt et que je n'ai pas besoin d'aller très loin pour avoir une asso de malade

Message cité 1 fois
Message édité par flo850 le 04-12-2021 à 15:26:13

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

n°2402540
flo850
moi je
Posté le 04-12-2021 à 15:28:14  profilanswer
 

gfive a écrit :

 

Le board c'est les sommes des lignes et des colonnes, plus une Map valeur -> position.

 

Comme ça lors du tirage, je soustrais la valeur aux sommes de la ligne et de la colonne qui la contient, et je sais instantanément si ça rend la grille gagnante.

 



Quasi pareil sauf que je ne stocke qu'un compteur des lignes / colonne que j'augmente quand j'ai trouvé un chiffre
Quand un compteur arrive à 5 bingo


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

n°2402541
R3g
fonctionnaire certifié ITIL
Posté le 04-12-2021 à 15:28:24  profilanswer
 

skeye a écrit :


et la solution qu'il t'affiche est bien identique à ce que tu as trouvé? :D


Oui


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2402542
skeye
Posté le 04-12-2021 à 15:38:12  profilanswer
 

Tiens d'ailleurs c'est pas garanti que ça fonctionne, avec une Map simple nombre=>position, non?
Ils spécifient que les nombres n'apparaissent pas sur tous les boards, mais pas qu'un nombre ne peut pas apparaitre 2 fois sur le même, ou alors je suis passé à coté.:o

Message cité 2 fois
Message édité par skeye le 04-12-2021 à 15:39:13

---------------
Can't buy what I want because it's free -
n°2402543
flo850
moi je
Posté le 04-12-2021 à 15:42:35  profilanswer
 

skeye a écrit :

Tiens d'ailleurs c'est pas garanti que ça fonctionne, avec une Map simple nombre=>position, non?
Ils spécifient que les nombres n'apparaissent pas sur tous les boards, mais pas qu'un nombre ne peut pas apparaitre 2 fois sur le même, ou alors je suis passé à coté.:o


Ça fait effectivement partie des règles non dites du bingo
 (Dans le doute j'ai vérifié les inputs :o)


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

n°2402544
skeye
Posté le 04-12-2021 à 15:52:39  profilanswer
 

flo850 a écrit :


Ça fait effectivement partie des règles non dites du bingo
 (Dans le doute j'ai vérifié les inputs :o)


Perso j'ai fait comme si c'était possible.:o


---------------
Can't buy what I want because it's free -
n°2402545
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 15:54:28  profilanswer
 

Devil'sTiger a écrit :

Après j'ai toujours cette hésitation de comment ca compile vs le match par exemple (en gros l'opti de ca), mais peut être je me fais trop de bille et Rust sait bien gérer l'opti d'une chaine comme ca peut être ?


Normalement ya pas de pb, aprés le coup du then c’était une blague je ferais un if bateau perso.  
 

Devil'sTiger a écrit :


Par contre, ca demande une bonne connaissance de toutes les fonctions dispo, et clairement j'ai pas assez cette partie là en tête pour le moment (mais je le sais depuis pas mal de temps, c'est ce qui me limite le plus en Rust la maintenant).


Ouaip ça vaut vraiment le coup de régulièrement faire un tour sur les types les plus importants genre option, result, iterator, vec, hashmap, string, pour regarder ce qu’il y a comme utilitaires cool dessus: même si tu suis les release note il est facile de rater une stabilisation, ou bien de rater l’utilité d’un truc quand t’as jais été confronté au problème.  

skeye a écrit :

mais pas qu'un nombre ne peut pas apparaitre 2 fois sur le même, ou alors je suis passé à coté.:o


C’est une contrainte implicite au fait que ce soit un bingo, c’est d’ailleurs assez dommage d’avoir des éléments aussi culturellement spécifiques dans un truc pareil, macron démission.
 
Ou alors il faudrait spécifiquement jouer dessus pour ne respecter aucune des implications non spécifiées dans l’énoncé  [:urinoir desir]

Message cité 1 fois
Message édité par masklinn le 04-12-2021 à 15:57:49

---------------
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°2402546
flo850
moi je
Posté le 04-12-2021 à 15:54:43  profilanswer
 

tu stockes un tableau de position et le problème est réglé


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

n°2402547
gfive
Posté le 04-12-2021 à 15:57:37  profilanswer
 

hephaestos a écrit :


Le fait d'avoir une map nombre->position est aussi significatif dans cette approche, notamment parce qu'elle permet de jouer chaque coup en O(1).

 

Non, en O(recherche dans la Map)

 

J'avais tenté le tableau indexé mais tous les nombres ne sont pas tirés.
Ça doit pouvoir se faire a la construction en laissant les trois mais bon.

  
skeye a écrit :

 

ouais comme moi en fait, sauf que tu fais descendre les sommes à zéro au lieu de compter les cases tirées jusqu'à la longueur de la ligne/colonne :D

 

Je fais moins de calculs :o
2 soustractions par tirage, et la somme des lignes quand j'ai une colonne ou une ligne a 0.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2402548
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 16:00:14  profilanswer
 

gfive a écrit :


Non, en O(recherche dans la Map)


Une hashmap c’est un lookup en O(1) average case, ça peut dégénérer en O(n) avec une entrée adversariale mais bon.  
 
Et ici le jeu de données fait que t’as même pas besoin d’une hashmap tu peux utiliser un array (donc encore plus O(1))


---------------
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°2402549
Flaie
Posté le 04-12-2021 à 16:01:25  profilanswer
 

masklinn a écrit :


Une hashmap c’est un lookup en O(1) average case, ça peut dégénérer en O(n) avec une entrée adversariale mais bon.  
 
Et ici le jeu de données fait que t’as même pas besoin d’une hashmap tu peux utiliser un array (donc encore plus O(1))


Disons donc O(1/2) et restons bons amis

n°2402550
skeye
Posté le 04-12-2021 à 16:03:43  profilanswer
 

gfive a écrit :

 

Je fais moins de calculs :o
2 soustractions par tirage, et la somme des lignes quand j'ai une colonne ou une ligne a 0.

 

Tu en fais beaucoup plus à l'initialisation de tes boards pour avoir tes sommes par lignes et colonnes, moi je sais que c'est 5x5, c'est dans l'énoncé (même si je le calcule une fois par board quand même là en vrai).  :O


---------------
Can't buy what I want because it's free -
n°2402551
gfive
Posté le 04-12-2021 à 16:05:01  profilanswer
 

masklinn a écrit :


Une hashmap c’est un lookup en O(1) average case, ça peut dégénérer en O(n) avec une entrée adversariale mais bon.

 

Et ici le jeu de données fait que t’as même pas besoin d’une hashmap tu peux utiliser un array (donc encore plus O(1))

 

Certes.

 

Le problème du tableau c'est que tu sais pas quelle taille lui donner au départ...quoique..en prenant le max des tirages tu devrais être bon.

 

Une autre optimisation possible ça serait de virer d'entrée les grilles qui ont un numéro qu'il fait pas partie des tirages.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2402552
Devil'sTig​er
Posté le 04-12-2021 à 16:11:33  profilanswer
 

masklinn a écrit :


Normalement ya pas de pb, aprés le coup du then c’était une blague je ferais un if bateau perso.  
 


 
Ca m'a pas l'air plus lisible par contre :D
 
Ca fait trop de filter, iter, map & co qui chaine dans tous les sens:
 
https://pastebin.com/7j7ggTkX
 
Just virer le reset me parait mieux en terme de lisibilité...
 

masklinn a écrit :


Ouaip ça vaut vraiment le coup de régulièrement faire un tour sur les types les plus importants genre option, result, iterator, vec, hashmap, string, pour regarder ce qu’il y a comme utilitaires cool dessus: même si tu suis les release note il est facile de rater une stabilisation, ou bien de rater l’utilité d’un truc quand t’as jais été confronté au problème.  


 
Clairement c'est le gros point qu'il me manque, j'ai pas le temps, donc je prend pas le temps, et paf il me manque plein de trucs hyper important avec lesquels je pourrais en plus aller plus vite si je connaissais les petits trucs et astuces...

n°2402553
el muchach​o
Comfortably Numb
Posté le 04-12-2021 à 16:28:59  profilanswer
 

hephaestos a écrit :

Bon en tout cas je crois que je vais lacher l'affaire pour utiliser les ranges en C++, c'est une purge ça casse de tous les côtés sans raison apparente, et évidemment impossible de diagnostiquer quoi que ce soit c'est toujours des messages d'erreur complètement dégénérés...


[:vave:4]
Un problème résolu depuis 10 ans en D. :o
https://dlang.org/phobos/std_range.html


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2402554
R3g
fonctionnaire certifié ITIL
Posté le 04-12-2021 à 16:40:41  profilanswer
 

Ayé j'ai fini par m'en sortir. C'est chaud pour se concentrer le week-end il y a trop de trucs à faire :o
 
https://pastebin.com/rHNbwH7U
 
En plus j'ai galéré comme un con pendant 10 minutes avant de comprendre qu'il faut pas remove un élément d'une liste pendant qu'on itère dessus :/


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2402555
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 16:45:10  profilanswer
 

gfive a écrit :


Le problème du tableau c'est que tu sais pas quelle taille lui donner au départ...quoique..en prenant le max des tirages tu devrais être bon.


 
Yup, c’est encore une info un peu implicite mais bon.  
 
Ou alors tu peux utiliser un des rares langages dont les tableaux sont nativement clairsemés :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°2402556
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 16:50:13  profilanswer
 

Devil'sTiger a écrit :

Ca m'a pas l'air plus lisible par contre :D


Tu préfères

match cell.selected {
    true => None,
    false => Some(cell.number)
}


à

if !cell.selected {
    Some(cell.number)
} else {
    None
}


?
 
Ou bien on parle pas de la même chose?


---------------
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°2402557
Devil'sTig​er
Posté le 04-12-2021 à 16:52:01  profilanswer
 

Je parlais plutôt de la facon de lire le fichier ;)
 
Nan ca c'est globalement pareil ;)

n°2402558
flo850
moi je
Posté le 04-12-2021 à 17:05:55  profilanswer
 

R3g a écrit :

Ayé j'ai fini par m'en sortir. C'est chaud pour se concentrer le week-end il y a trop de trucs à faire :o

 

https://pastebin.com/rHNbwH7U

 

En plus j'ai galéré comme un con pendant 10 minutes avant de comprendre qu'il faut pas remove un élément d'une liste pendant qu'on itère dessus :/


C'est aussi le bug que j'ai eu ce matin :o


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

n°2402559
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 17:06:40  profilanswer
 

Devil'sTiger a écrit :

Je parlais plutôt de la facon de lire le fichier ;)


Ah ouais mais c'est parce-que tu te compliques la vie:

 

   if let Ok(lines) = read_lines("./input.txt" ) {
        // blow up on io error, something went really wrong and we don't care for it
        let mut lines = lines.map(|r| r.unwrap()).peekable();

 

       // parse header line (draws)
        let draw = lines.next().expect("header not found" )
            .split(',')
            .filter_map(|c| c.parse::<u32>().ok())
            .collect::<Vec<u32>>();
        // skip separator between header and first board
        lines.next();
        // parse boards
        while lines.peek().is_some() {
            let board_lines = lines.by_ref().take_while(|line| !line.is_empty());
            let grid = board_lines.filter_map(|line| {
                l.split(' ').filter_map(|c| BingoCell {
                    selected: false,
                    number: c.parse::<u32>().ok()?,
                }).collect::<Vec<BingoCell>>()
            }).collect::<Vec<Vec<BingoCell>>>();
            if grid.len() > 0 {
                boards.push(BingoBoard {
                    grid
                });
            }
        }
    }


truc du style (il y a probablement des erreurs j'ai écrit directement dans la boite de commentaires de hfr mais tu voies l'idée);

 

Et je suggérais de mettre toute la construction du board dans un constructeur qui prendrait un itérateur de lignes, ça change pas la complexité du code mais ça la rend plus discrète.


Message édité par masklinn le 04-12-2021 à 17:08:54

---------------
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°2402560
ratibus
Posté le 04-12-2021 à 17:37:32  profilanswer
 

Flaie a écrit :


Ben il a l'air très fort.
 
j'ai plusieurs problèmes qui m'ont fait transpirer l'an dernier, genre le jour 20 ou j'ai mis 8h, dont 2 rien que pour la première partie, c'est pas compliqué le jour la j'ai pa du bosser du tout :D
 
le j19 aussi j'ai mis 1h
 
et ces temps c'est pour une solution gros degueulasse, pas un truc joli à coloriser sur carbon sh


J'avais passé 5h l'année dernière sur le jour 20 mais j'étais tellement content à la fin d'avoir un solveur de puzzle récursif  :love:  
 
Bon aujourd'hui, pas très content de mon temps (37 minutes partie 1 et 4 minutes en partie 2), mais ça fonctionne :o

Spoiler :

Sachant que le code de la partie 2 affiche toutes les boards qui gagnent avec leur score au moment de la victoire, donc première ligne c'est la réponse à la partie 1 et dernière ligne c'est la réponse à la partie 2.


Message édité par ratibus le 04-12-2021 à 17:40:35
n°2402561
ratibus
Posté le 04-12-2021 à 17:47:38  profilanswer
 

Pour les leaderboards privés, j'aimerais bien une option de tri supplémentaire qui prenne en date de démarrage non pas 6h du matin mais l'heure d'ouverture du problème (en considérant que ça triche pas :o).


---------------
Mon blog
n°2402562
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2021 à 18:11:28  profilanswer
 

ratibus a écrit :

Pour les leaderboards privés, j'aimerais bien une option de tri supplémentaire qui prenne en date de démarrage non pas 6h du matin mais l'heure d'ouverture du problème (en considérant que ça triche pas :o).


Je sais bien qu’on a l’élite de plusieurs nations mais he doute qu’Eric Wastl soit sur hfr.


---------------
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?
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  24419  24420  24421  ..  27169  27170  27171  27172  27173  27174

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)