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

 

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

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  25165  25166  25167  ..  27193  27194  27195  27196  27197  27198
Auteur Sujet :

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

n°2435194
masklinn
í dag viðrar vel til loftárása
Posté le 11-12-2022 à 13:59:31  profilanswer
 

Reprise du message précédent :

ratibus a écrit :

Bon je confirme, c'est pas un bug chez moi, ça dépend des données d'entrée des gens :D
Cette solution ne fonctionne pas en partie 1 sur mes données : https://www.reddit.com/r/adventofco [...] &context=3 :)


Ou alors c’est un bug dans les deux. Il y a régulièrement des edge cases qui sont présents que dans certains jeux de données, donc tu peux avoir une solution incorrecte / incomplète qui passe chez toi mais pas chez le voisin.


Message édité par masklinn le 11-12-2022 à 14:00:28

---------------
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 11-12-2022 à 13:59:31  profilanswer
 

n°2435195
nraynaud
lol
Posté le 11-12-2022 à 14:09:46  profilanswer
 

vous pensez qu'il y a de l'argent dans la formation de développeurs ?
quels sont les modèles économiques ?
 
là j'ai un dev qui est assez bon, mais il a jamais bossé en entreprise, genre je viens d'intervenir parce qu'il avait vidé le pool de connexion à la DB, y'a d'autres cas où il a bouffé les erreurs. Mais à part ça, il a démonté et interagi avec des systèmes complexes et obfusqué, son code fonctionne.
 
ça fait plusieurs dev que je vois comme ça, il ont pas la "culture" qu'on a développé en entreprise.


---------------
trainoo.com, c'est fini
n°2435196
Mackila
Posté le 11-12-2022 à 14:12:49  profilanswer
 

Ha oui.
 
Bah j'ai eu du bol.
 
Faudrait poser les maths et c'est loin pour moi, mais il me semble que la double division par 3 fout le bordel, vu que t'as qu'un seul 3 dans ton 9699690, pour "garder" le même reste.

n°2435198
DDT
Few understand
Posté le 11-12-2022 à 15:02:21  profilanswer
 

nraynaud a écrit :

vous pensez qu'il y a de l'argent dans la formation de développeurs ?
quels sont les modèles économiques ?


Je pense que oui.

 

Je sais pas trop dans les technos ou méthodes vraiment généralistes, mais dans les trucs un peu spécifiques je vois souvent des gens qui se sont spécialisés dans la formation:
- Contenus en ligne, faut évidemment pas faire que ça mais c'est important pour la visibilité
- Workshops lors de conférence, et généralement ils présentent à ladite conférence de nouveau pour leur visibilité
- Workshops chez les clients.

 

Y en a qui viennent d'employeurs où ils faisaient déjà plus ou moins ça (typiquement les boîtes qui font de l'open source) mais pas uniquement.

 

Si tu veux facturer cher faut trouver une bonne niche où c'est compliqué de trouver gens compétents, et faut être proactif pour anticiper les trucs qui deviennent tendance.
Bonus si tu y ajoutes une activité entremetteur, tu peux te faire des commissions sympas juste en maintenant un portail avec des offres d'emploi spécialisées.
Par exemple tu peux faire un clone de https://rustjobs.dev pour Julia. :D


Message édité par DDT le 11-12-2022 à 15:03:18

---------------
click clack clunka thunk
n°2435200
skeye
Posté le 11-12-2022 à 15:41:01  profilanswer
 

Day 11 done.

Spoiler :


Pas compris la difficulté dans la partie 2 au final - c'est juste le truc évident qu'on aurait bien aimé pouvoir faire dès la partie 1 non? :o
...bricolage pour adapter à la partie 2, mais c'est pas horrible : https://github.com/mrossard/aoc2022 [...] /day11.php


---------------
Can't buy what I want because it's free -
n°2435201
SekYo
Posté le 11-12-2022 à 15:54:10  profilanswer
 

Pas convaincu par ce day, j'aime pas trop les trucs qui font appel à des "trics mathématiques", j'aurai sans doute pas trouvé si j'avais pas poncé leetcode y a quelques mois.
 
Sinon vu que l'input était chiant à parser, j'en ai profité pour faire des petits bouts avec nom, et une fois que la logique commence à venir, ça donne des trucs assez lisible, par exemple ça pour parser la liste des items initiaux :
 

fn parse_starting_items(input: &str) -> IResult<&str, VecDeque<i64>> {
    map(
        preceded(
            multispace0,
            preceded(
                tag("Starting items: " ),
                separated_list1(tag(", " ), map_res(digit1, |s: &str| s.parse::<i64>())),
            ),
        ),
        VecDeque::from,
    )(input)
}


 
 
Par contre Mask, y a pas moyen en Rust de stocker dans une struct une fonction du type 6.add ? Je voulais que mon parsing me stock ça directement dans un champ "operation" de ma struct "Monkey" (comme ça je pouvais avoir la nouvelle valeur via monkey.operation(ancienne_valeur), mais j'ai pas réussi. Du coup je stock une Enum Operation qui a elle même un champ Value (pour stocker une valeur ou l'ancienne valeur) et je match derrière, mais c'est moche :o

n°2435202
el muchach​o
Comfortably Numb
Posté le 11-12-2022 à 17:00:00  profilanswer
 

Bon, j'ai enfin pu terminer le pb du jour. Il a quand même fallu passer à ULong, quelle fourberie. :o

 

Après un peu de nettoyage: https://github.com/NJdevPro/AdventO [...] 2/day11.kt


Message édité par el muchacho le 11-12-2022 à 17:16:58

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2435204
gfive
Posté le 11-12-2022 à 17:16:06  profilanswer
 

nraynaud a écrit :

vous pensez qu'il y a de l'argent dans la formation de développeurs ?
quels sont les modèles économiques ?

 

là j'ai un dev qui est assez bon, mais il a jamais bossé en entreprise, genre je viens d'intervenir parce qu'il avait vidé le pool de connexion à la DB, y'a d'autres cas où il a bouffé les erreurs. Mais à part ça, il a démonté et interagi avec des systèmes complexes et obfusqué, son code fonctionne.

 

ça fait plusieurs dev que je vois comme ça, il ont pas la "culture" qu'on a développé en entreprise.

 

Je pense pas qu'il y ait beaucoup de pognon dépensé efficacement dans ce domaine particulier de la formation de devs, non.

 

Dans la formation technique, oui. Mais dans la partie "pro" du dev, que dalle.

 

Avec la multiplication des formations "a la 42", sans trop de suivi en dehors de "ça marche donc c'est bon", on a des devs pas mauvais, mais incapables de comprendre certains aspects sans une formation supplémentaire.

 

On a eu la présentation de la plate forme de 01Talents la semaine dernière...
Pour la détection, leur truc a l'air intéressant...mais sinon, c'est piscine et peer2peer, et les mecs te disent que les bonnes pratiques en termes de qualité et de méthodes (agiles notamment) émergent spontanément dans la cohorte..'
Perso je suis extrêmement dubitatif


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2435205
el muchach​o
Comfortably Numb
Posté le 11-12-2022 à 17:29:12  profilanswer
 

nraynaud a écrit :

vous pensez qu'il y a de l'argent dans la formation de développeurs ?
quels sont les modèles économiques ?
 
là j'ai un dev qui est assez bon, mais il a jamais bossé en entreprise, genre je viens d'intervenir parce qu'il avait vidé le pool de connexion à la DB, y'a d'autres cas où il a bouffé les erreurs. Mais à part ça, il a démonté et interagi avec des systèmes complexes et obfusqué, son code fonctionne.


Je te vois assez bien faire de la formation. Ca peut être une voie à explorer.
Ca n'est probablement pas aussi rémunérateur que faire du dev, mais c'est aussi moins stressant, tu n'as pas de deadlines particuliers, juste faire en sorte que les gens soient satisfaits et donc savoir s'améliorer avec les retours des clients.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2435206
masklinn
í dag viðrar vel til loftárása
Posté le 11-12-2022 à 17:46:26  profilanswer
 

Bon enfin fini, passé plus d'1h dessus, principalement à me faire chier sur le parsing. Une fois que j'avais tous mes singes, la partie 1 a marché du premier coup, la partie 2 a pêté avec un overflow (merci overflow-checks: true) malgré les u64 mais solutionner a pas été difficile (en même temps à postériori je me dis que u128 aurait pu passer  [:ula]) (faux edit: j'ai testé, ça passait pas).

 

J'vais ptet me remettre dans nom pour refaire le parsing, parce-que là c'est vraiment pas fantastique, yen a pour 50 lignes pour parser un singe avec le formattage de rustfmt (mais avec de l'error handling du feu de dieu, je peux le mettre en prod, la seule distinction que je fais pas c'est entre "pas de header" et "header invalide" )

 

Après à coup de regex ça irait probablement plus vite en fait: matcher les items, matcher l'opération, matcher 3 entiers, puis parser les items et l'opération.

SekYo a écrit :

Par contre Mask, y a pas moyen en Rust de stocker dans une struct une fonction du type 6.add ?


Alors non et oui.

 

Ya pas de "bound method" en rust, donc tu peux pas stocker "6.add", par contre tu peux stocker "move |k| 6 + k", faut juste passer par un trait object, les Fn* sont une des applications les plus communes (vu que toutes les closures ont un type concret différent, et anonyme):

struct Monkey {
    items: VecDeque<u64>,
    op: Box<dyn Fn(u64) -> u64>,
    divisible: u64,
    if_true: usize,
    if_false: usize,
}


n.parse::<u64>().map(|n| Box::new(move |k| n + k) as _)


Et l'invocation est un peu bizarre: `monkey.op(x)` va aller chercher dans les méthodes, donc dans les faits ça desugar inconditionnellement en "Monkey::op(monkey, x)", donc il faut spécifiquement déréférencer l'attribut, puis l'appeler:

item = (monkeys[i].op)(item);

Message cité 1 fois
Message édité par masklinn le 11-12-2022 à 17:52:10

---------------
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 11-12-2022 à 17:46:26  profilanswer
 

n°2435208
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 11-12-2022 à 18:23:57  profilanswer
 

SekYo a écrit :

Pas convaincu par ce day, j'aime pas trop les trucs qui font appel à des "trics mathématiques", j'aurai sans doute pas trouvé si j'avais pas poncé leetcode y a quelques mois.

 



Disons que c'est culturel, ça fait partie des classiques des compétitions de programmation. En revanche ça n'a à mon avis pas sa place dans un entretien d'embauche.

n°2435209
nraynaud
lol
Posté le 11-12-2022 à 18:34:03  profilanswer
 

https://img3.super-h.fr/images/2022/12/11/snapshot_168070916c5f6db22c352.jpg
Bon, on a un lavabo branché aux 2 bouts, et y’a très très peu de fuites !


---------------
trainoo.com, c'est fini
n°2435210
gfive
Posté le 11-12-2022 à 18:36:13  profilanswer
 

nraynaud a écrit :

https://img3.super-h.fr/images/2022 [...] 22c352.jpg
Bon, on a un lavabo branché aux 2 bouts, et y’a très très peu de fuites !

 

Si je peux me permettre, tu aurais pas du mettre un truc étanche et le carrelage avant de mettre le lavabo?

 


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2435211
nraynaud
lol
Posté le 11-12-2022 à 18:39:48  profilanswer
 

gfive a écrit :


 
Si je peux me permettre, tu aurais pas du mettre un truc étanche et le carrelage avant de mettre le lavabo?
 


j'ai pas prévu de carelage, je sais pas quoi faire, mais tout s'enlève, le lavabo est posé sur des rails, l'évacuation se clipse, et les alims ont des petits robinets d'arrêt juste à la sortie du mur.
 
Je décolle pour les US vendredi 16, je reviens le 27 et le 29 il faut pouvoir utiliser le chiotte, le lavabo et la chambre, même dans des conditions un peu camping.


---------------
trainoo.com, c'est fini
n°2435212
beel1
Posté le 11-12-2022 à 18:45:07  profilanswer
 

nraynaud a écrit :

vous pensez qu'il y a de l'argent dans la formation de développeurs ?
quels sont les modèles économiques ?
 
là j'ai un dev qui est assez bon, mais il a jamais bossé en entreprise, genre je viens d'intervenir parce qu'il avait vidé le pool de connexion à la DB, y'a d'autres cas où il a bouffé les erreurs. Mais à part ça, il a démonté et interagi avec des systèmes complexes et obfusqué, son code fonctionne.
 
ça fait plusieurs dev que je vois comme ça, il ont pas la "culture" qu'on a développé en entreprise.


évite de prospecter par téléphone/SMS en parlant du compte personnel formation [:cosmoschtroumpf]

n°2435213
el muchach​o
Comfortably Numb
Posté le 11-12-2022 à 18:51:54  profilanswer
 

Mask, la multiplication old * old double le nombre de bits nécessaires à chaque itération, donc tu overflow à la 4e itération.
Idem avec des BigInt, tu doubles la mémoire et le nombre d'opérations nécessaires à chaque opération donc c'est mort quoi qu'il arrive.
 
Sinon je ne me souviens plus si (a % c) X b et (a X b) % c sont équivalents. Si oui, alors on doit pouvoir le faire avec des u32 je pense. Je vais essayer pour voir.
 
edit: un bref essai à la calculette montre que ce n'est pas du tout équivalent.

Message cité 1 fois
Message édité par el muchacho le 11-12-2022 à 19:03:38

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2435214
SekYo
Posté le 11-12-2022 à 18:55:38  profilanswer
 

masklinn a écrit :


n.parse::<u64>().map(|n| Box::new(move |k| n + k) as _)


Et l'invocation est un peu bizarre: `monkey.op(x)` va aller chercher dans les méthodes, donc dans les faits ça desugar inconditionnellement en "Monkey::op(monkey, x)", donc il faut spécifiquement déréférencer l'attribut, puis l'appeler:

item = (monkeys[i].op)(item);



 :jap:  
Thx, j'avais aussi essayé via une closure, mais je m'en sortait pas et ait fini par give up. Me manquait la Box notamment :o
 
Edit : Ca fonctionne, thx ! Bon c'est pas super élégant (même si déjà bien mieux que mes Enum + match), mais la flemme de chercher mieux :
 

fn parse_op(input: &str) -> IResult<&str, Box<dyn Fn(i64) -> i64>> {
    preceded(
        multispace0,
        preceded(
            tag("Operation: new = old " ),
             
            alt((
                map(
                    pair(tag("+ " ), map_res(digit1, |s: &str| s.parse::<i64>())),
                    |(_, value)| Box::new(move |old| value + old) as _,
                ),
                map(tag("+ old" ), |_| Box::new(move |old| old + old) as _),
                map(
                    pair(tag("* " ), map_res(digit1, |s: &str| s.parse::<i64>())),
                    |(_, value)| Box::new(move |old| value * old) as _,
                ),
                map(tag("* old" ), |_| Box::new(move |old| old * old) as _),
            )),
        ),
    )(input)
}

Message cité 1 fois
Message édité par SekYo le 11-12-2022 à 19:18:01
n°2435215
Kenshineuh
Posté le 11-12-2022 à 19:16:29  profilanswer
 

Des gens utilisent Tutanota ? Bien, pas bien ? :o

n°2435216
masklinn
í dag viðrar vel til loftárása
Posté le 11-12-2022 à 19:17:54  profilanswer
 

el muchacho a écrit :

Mask, la multiplication old * old double le nombre de bits nécessaires à chaque itération, donc tu overflow à la 4e itération.
Idem avec des BigInt, tu doubles la mémoire et le nombre d'opérations nécessaires à chaque opération donc c'est mort quoi qu'il arrive.


Ouais manquent plus ou moins 6 ordres de grandeur, mais tester m'a juste coûté de faire un s/u64/u128/ donc c'était moins de travail que de réfléchir :o


Message édité par masklinn le 11-12-2022 à 19:18:35

---------------
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°2435217
masklinn
í dag viðrar vel til loftárása
Posté le 11-12-2022 à 19:19:52  profilanswer
 

SekYo a écrit :

Thx, j'avais aussi essayé via une closure, mais je m'en sortait pas et ait fini par give up. Me manquait la Box notamment :o


Ouais en fait un trait object ça doit être derrière un pointeur (référence, box, rc, arc) parce que c'est un "fat pointer", t'as un pointeur vers la valeur et un pointeur vers une vtable, et ça fait du dispatch dynamique.
 
Mais tous les traits peuvent pas être utilisés pour des trait objects, il y a des limitations assez lourdes (vu que plein de trucs sont pas trop exprimables via dispatch dynamique).
 
Au final j'ai tout refait avec Regex et en enlevant le joli error handling, c'est plus court:

> git diff --stat src/bin/day11.rs
 src/bin/day11.rs | 158 ++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------
 1 file changed, 44 insertions(+), 114 deletions(-)


Message édité par masklinn le 11-12-2022 à 19:21:43

---------------
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°2435218
gfive
Posté le 11-12-2022 à 19:50:13  profilanswer
 

nraynaud a écrit :


j'ai pas prévu de carelage, je sais pas quoi faire, mais tout s'enlève, le lavabo est posé sur des rails, l'évacuation se clipse, et les alims ont des petits robinets d'arrêt juste à la sortie du mur.

 

Je décolle pour les US vendredi 16, je reviens le 27 et le 29 il faut pouvoir utiliser le chiotte, le lavabo et la chambre, même dans des conditions un peu camping.

 

:jap:

 

Quand tu feras la finition propre, mets un truc genre ça : https://www.leroymerlin.fr/produits [...] ml?src=clk

 

Derrière le lavabo : ça évitera de pourrir le placo si tu as de la flotte qui coule sur la plage du lavabo.

 

Et il en faudra aussi partout dans la douche.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2435219
nraynaud
lol
Posté le 11-12-2022 à 19:53:36  profilanswer
 

gfive a écrit :


 
 :jap:  
 
Quand tu feras la finition propre, mets un truc genre ça : https://www.leroymerlin.fr/produits [...] ml?src=clk
 
Derrière le lavabo : ça évitera de pourrir le placo si tu as de la flotte qui coule sur la plage du lavabo.
 
Et il en faudra aussi partout dans la douche.


merci, je viens de le mettre dans ma liste des courses


---------------
trainoo.com, c'est fini
n°2435220
gfive
Posté le 11-12-2022 à 20:12:18  profilanswer
 

nraynaud a écrit :


merci, je viens de le mettre dans ma liste des courses

 

(Alors je nuance juste un truc : si tu mets du carrelage dans la douche et que tu fais poser par un pro, il est possible qu'il demande à poser aussi l'étanchéité pour accepter de garantie le chantier... Chez moi j'en ai un qui a refusé (du coup j'en ai pris un autre et j'ai quand même posé moi même)


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2435221
nraynaud
lol
Posté le 11-12-2022 à 20:17:35  profilanswer
 

nraynaud a écrit :


merci, je viens de le mettre dans ma liste des courses


Je réalise que la photo est trompeuse, c’est du fermacell, pas du placo, c’est hydrofuge, mais blanc


---------------
trainoo.com, c'est fini
n°2435222
flo850
moi je
Posté le 11-12-2022 à 20:39:47  profilanswer
 

nraynaud a écrit :


Je réalise que la photo est trompeuse, c’est du fermacell, pas du placo, c’est hydrofuge, mais blanc


J'hésite avec du placo pour chez nous, c'est mieux /plus facile à poser ?


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

n°2435223
gfive
Posté le 11-12-2022 à 21:05:50  profilanswer
 

nraynaud a écrit :


Je réalise que la photo est trompeuse, c’est du fermacell, pas du placo, c’est hydrofuge, mais blanc

 

Ouais mais même hydrofuge ça suffit pas dans les sdb (dans les parties qui peuvent recevoir de l'eau, je veux dire)

 

Ça se ruine un peu moins vite, mais il y pas de miracle : des trucs à base de gypse/plâtre ça se d'élite si ça reste humide.


Message édité par gfive le 11-12-2022 à 21:06:16

---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2435224
Ydalb
In Crêpes n' Cidre I Trust!
Posté le 11-12-2022 à 21:42:24  profilanswer
 

AOC day 11 done :o

 

Relou le parsing, j'ai fait comme hepha, tout en dur :o

 

https://github.com/Ydalb/adventofco [...] /solve.php

Message cité 2 fois
Message édité par Ydalb le 12-12-2022 à 11:04:54

---------------
:o
n°2435225
el muchach​o
Comfortably Numb
Posté le 11-12-2022 à 21:51:52  profilanswer
 

el muchacho a écrit :


Sinon je ne me souviens plus si (a % c) X b et (a X b) % c sont équivalents. Si oui, alors on doit pouvoir le faire avec des u32 je pense. Je vais essayer pour voir.

 

edit: un bref essai à la calculette montre que ce n'est pas du tout équivalent.

 

Bon par contre je vais mater les vidéos de ce type (hyper-neutrino) parce que non seulement il est très bon dans le classement, mais il est excellent dans ses explications.
Et il lâche les perles qu'il faut connaître, à savoir que :

 

1) (a + b) % x = ((a % x) + (b % x)) % x
2) (a x b ) % x = ((a % x) x (b % x)) % x

 

J'ai vérifié avec un exemple et ça marche. A partir de là, on doit pouvoir résoudre tout le problème avec des u32 parce qu'on fait les % avant les multiplications, ce qui fait qu'on est toujours dans les mêmes ordres de grandeur que (x-1)^2 au pire.

Message cité 1 fois
Message édité par el muchacho le 11-12-2022 à 21:55:28

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2435226
R3g
fonctionnaire certifié ITIL
Posté le 11-12-2022 à 22:01:56  profilanswer
 

Ydalb a écrit :

AOC day 11 done :o
 
Relou le parsing, j'ai fait comme hepha, tout en dur :o
 
https://github.com/Ydalb/adventofco [...] /solve.php


J'ai opté pour une approche intermédiaire :o

Code :
  1. self.operation = lambda old: eval(operation)


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2435227
el_barbone
too old for this shit ...
Posté le 11-12-2022 à 22:03:42  profilanswer
 

flo850 a écrit :


J'hésite avec du placo pour chez nous, c'est mieux /plus facile à poser ?


Chez nous tous les murs autours de la baignoire et la douche sont en wedi (le receveur de la douche a l'italienne également).


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°2435228
masklinn
í dag viðrar vel til loftárása
Posté le 11-12-2022 à 22:06:18  profilanswer
 

el muchacho a écrit :

 

Bon par contre je vais mater les vidéos de ce type (hyper-neutrino) parce que non seulement il est très bon dans le classement, mais il est excellent dans ses explications.
Et il lâche les perles qu'il faut connaître, à savoir que :

 

1) (a + b) % x = ((a % x) + (b % x)) % x
2) (a x b ) % x = ((a % x) x (b % x)) % x

 

J'ai vérifié avec un exemple et ça marche. A partir de là, on doit pouvoir résoudre tout le problème avec des u32 parce qu'on fait les % avant les multiplications, ce qui fait qu'on est toujours dans les mêmes ordres de grandeur que (x-1)^2 au pire.


Chez moi x = 9699690, donc ça passe pas, sauf si le langage fait du widening de multiplications (mais je suis pas sûr qu'il y en ait un seul qui fasse).

 

(9699690-1)^2 ça demande 47 bits.

 

edit: en fait je pense que ça passe jamais: chez moi les diviseurs sont premiers et uniques, et j'ai les 8 premiers premiers (2, 3, 5, 7, 11, 13, 17, 19). Il semble douteux que le premier (diviseurs premiers uniques) soit une coincidence, donc au mieux j'ai le LCM le plus bas, au pire tout le monde a le même.

 

Et accessoirement le re-modulo sert à rien, vu que tes entrées sont tes sorties précédentes, donc tu fais des modulo sur des valeurs déjà modulées.

Message cité 1 fois
Message édité par masklinn le 11-12-2022 à 22:14: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°2435229
el muchach​o
Comfortably Numb
Posté le 11-12-2022 à 22:14:40  profilanswer
 

Moi j'ai parsé. C'était pas si dur aujourd'hui parce que Kotlin a une fonction magnifique nommée chunked(n) qui découpe une List ou Array en parties égales, et ça, ça facilite grandement le travail. On peut faire la même chose avec la encore plus magnifique fonction nommée windowed(size, offset) que je ne connaissais pas avant que masklinn et Flair la mentionnent.
Donc je découpe en blocs de 7 lignes, vire la dernière qui est vide. Ensuite, c'est assez con parce que tout est à offsets fixes donc un tas de substring. Comme j'avais la flemme de compter précisément, j'ai mis un trim() au cas où je me serais foiré:

Code :
  1. val chunks = lines.chunked(7).map { it.filter { it.isNotBlank() } }
  2.   for(chunk in chunks) {
  3.      val monkey = Monkey(   // j'instancie une instance de la classe Monkey
  4.          chunk[1].substring(18).split(',').map { it.trim().toULong() }.toMutableList(),
  5.          chunk[2].substring(23).trim(),
  6.          chunk[3].substring(20).trim().toULong(),
  7.          chunk[4].substring(29).trim().toInt(),
  8.          chunk[5].substring(29).trim().toInt(),
  9.      )
  10.      monkeys.add(monkey)
  11. }


La formule est plutôt facile à parser aussi car on ne parse que "+ item" ou "* item":

Code :
  1. var worry = operation.split(' ').let { (instr, operand) ->
  2.     when(instr) {
  3.          "+" -> item + if (operand != "old" ) operand.toULong() else item
  4.          "*" -> item * if (operand != "old" ) operand.toULong() else item
  5.          else -> throw Exception("Unknown operation: $instr" )
  6.     }
  7. }


Bref, il y a eu pire à l'AOC.


Message édité par el muchacho le 11-12-2022 à 22:17:09

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2435230
el muchach​o
Comfortably Numb
Posté le 11-12-2022 à 22:22:34  profilanswer
 

masklinn a écrit :


Chez moi x = 9699690, donc ça passe pas, sauf si le langage fait du widening de multiplications (mais je suis pas sûr qu'il y en ait un seul qui fasse).


ok

Citation :


(9699690-1)^2 ça demande 47 bits.
 
edit: en fait je pense que ça passe jamais: chez moi les diviseurs sont premiers et uniques, et j'ai les 8 premiers premiers (2, 3, 5, 7, 11, 13, 17, 19). Il semble douteux que le premier (diviseurs premiers uniques) soit une coincidence, donc au mieux j'ai le LCM le plus bas, au pire tout le monde a le même.


On a tous le même, je crois.

Citation :


Et accessoirement le re-modulo sert à rien, vu que tes entrées sont tes sorties précédentes, donc tu fais des modulo sur des valeurs déjà modulées.


Ces formules sont bonnes à savoir. Bon ça ne sert vraiment que dans les problèmes un peu artificiels de ce genre, en réalité on ne rencontre pas trop les cas où on risque de dépasser les limites des nombres informatiques.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2435231
skeye
Posté le 11-12-2022 à 22:51:42  profilanswer
 

Ydalb a écrit :

AOC day 11 done :o

 

Relou le parsing, j'ai fait comme hepha, tout en dur :o

 

https://github.com/Ydalb/adventofco [...] /solve.php

 

En PHP c'est pourtant pas bien compliqué à coups de explode. :O


---------------
Can't buy what I want because it's free -
n°2435232
ratibus
Posté le 11-12-2022 à 22:52:21  profilanswer
 

Par contre pour le placo, il me semble qu'il faut du H1 partout.


---------------
Mon blog
n°2435233
ratibus
Posté le 11-12-2022 à 22:53:03  profilanswer
 

skeye a écrit :


 
En PHP c'est pourtant pas bien compliqué à coups de explode. :O


Grave, c'est vraiment la partie sur laquelle je m'amuse le parsing :d


---------------
Mon blog
n°2435234
nucl3arfl0
Better Call Saul
Posté le 11-12-2022 à 23:40:30  profilanswer
 

Bon, je bloque sur la partie 2: https://github.com/fbeclin/aoc_2022 [...] _11/run.py
 
Evidemment, le GCD/LCM c'est pas du tout mon domaine, les maths ça fait des années que j'ai plus trop touché à ça.
Et comme je fais pas les leetcode et cie, ben largué complet.
 
Je vais creuser ça demain, je suis fatigué, mais c'est bien, je suis déjà out au jour 11 :/

n°2435235
nraynaud
lol
Posté le 11-12-2022 à 23:50:03  profilanswer
 

flo850 a écrit :


J'hésite avec du placo pour chez nous, c'est mieux /plus facile à poser ?


c'est plus lourd et plus solide, je sais pas quoi te dire de plus, j'ai pas vraiment de point de référence.


---------------
trainoo.com, c'est fini
n°2435236
masklinn
í dag viðrar vel til loftárása
Posté le 12-12-2022 à 06:12:28  profilanswer
 

nucl3arfl0 a écrit :

Bon, je bloque sur la partie 2: https://github.com/fbeclin/aoc_2022 [...] _11/run.py
 
Evidemment, le GCD/LCM c'est pas du tout mon domaine, les maths ça fait des années que j'ai plus trop touché à ça.
Et comme je fais pas les leetcode et cie, ben largué complet.
 
Je vais creuser ça demain, je suis fatigué, mais c'est bien, je suis déjà out au jour 11 :/


Y’a un lcm dans la stdlib, mais tous les diviseurs sont premiers donc tu peux juste les multiplier ensemble, il y a pas de facteur commun éliminable.

Message cité 1 fois
Message édité par masklinn le 12-12-2022 à 06:13:09

---------------
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°2435237
R3g
fonctionnaire certifié ITIL
Posté le 12-12-2022 à 06:54:50  profilanswer
 

masklinn a écrit :


Y’a un lcm dans la stdlib, mais tous les diviseurs sont premiers donc tu peux juste les multiplier ensemble, il y a pas de facteur commun éliminable.


De toute façon c’est pas nécessaire de trouver le plus petit, juste un pas trop grand.  Multiplier les facteurs entre eux fonctionne, premiers ou pas


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2435238
el muchach​o
Comfortably Numb
Posté le 12-12-2022 à 07:14:41  profilanswer
 

Ah, intéressant aujourd'hui. Par contre, pas garanti qu'on trouve le chemin optimal avec un algo trivial...


Message édité par el muchacho le 12-12-2022 à 07:53:48

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  25165  25166  25167  ..  27193  27194  27195  27196  27197  27198

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)