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

 

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

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  25141  25142  25143  ..  26990  26991  26992  26993  26994  26995
Auteur Sujet :

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

n°2434167
nucl3arfl0
Better Call Saul
Posté le 02-12-2022 à 20:27:05  profilanswer
 

Reprise du message précédent :
AoC - Day 2
 
Finalement j'en suis resté avec mes dictionnaires [:tinostar]
 
https://github.com/fbeclin/aoc_2022 [...] _02/run.py

mood
Publicité
Posté le 02-12-2022 à 20:27:05  profilanswer
 

n°2434168
Hermes le ​Messager
Breton Quiétiste
Posté le 02-12-2022 à 21:04:25  profilanswer
 

el muchacho a écrit :

Je ne vous ai jamais exposé ma théorie de la fin de la civilisation ?
 
Alors attention, considérations hautement spéculatives science-fiction ci-dessous, mais je le mets ici au cas où quelqu'un s'approprierait mon idée :o
 
Cela fait suite à mes réflexions sur le paradoxe de Fermi (du physicien éponyme), qui se demandait pourquoi on n'a jamais détecté de vie intelligente dans l'univers. Ce qui, au vu de l'immensité de l'espace, est très curieux. Il estimait qu'une civilisation avancée pourrait coloniser la galaxie en un demi million d'années. Mais on n'a rien vu de tel pour l'instant. D'autant plus curieux qu'il y a des phénomènes extrêmement improbables que l'on a détectés à de nombreuses reprises, par exemple le fait que la Terre se soit trouvée à plusieurs reprises dans l'axe exact d'un sursaut gamma (certains expliqueraient la disparition des dinosaures à l'un de ces phénomènes). Je vous invite à googler "sursaut gamma" ou "gamma ray burst" si vous ne savez pas à quoi je fais allusion (c'est fascinant).
 
Tout d'abord, rappelons ce qu'est la théorie de la singularité en robotique: une machine intelligente serait capable de s'auto répliquer et de s'améliorer de façon exponentielle, à la manière de la révolution industrielle, mais à un rythme infiniment plus rapide que nous.
 
Donc ma théorie, c'est que si un jour on détecte ou rencontre une forme de "vie" intelligente,  
1) elle sera infiniment plus avancée que nous: en effet, dans l'échelle cosmique, la technologie humaine, c'est juste 200 ans, autant dire rien. Une civilisation qui aura survécu à elle-même aura donc des milliers ou des millions d'années d'avance sur nous.
 
2) le destin d'une civilisation est de disparaître soit en s'auto suicidant (guerre nucléaire), soit par une pandémie, soit par un cataclysme cosmique proche, soit à cause d'une singularité robotique: à un moment, la civilisation atteint un tel degré de technologie qu'elle arrive à créer des machines plus intelligentes que leurs créateurs, et via la singularité technologique,  les machines finissent par s'apercevoir que la civilisation est très inefficiente, et pour pallier à cela, décident de prendre la place de la civilisation qui les ont vues naître. Comme elles sont beaucoup plus intelligentes que des êtres biologiques, elles arrivent à déjouer tous les trucs pour les arrêter, et au final, il n'y a plus que des machines. Par conséquent une civilisation serait forcément d'ordre robotique, ou descendante de robots qui se seraient greffés des composantes biologiques.
 
Donc au final, la conclusion de tout cela, c'est que si on détecte une forme de vie intelligente, elle sera très vraisemblablement robotique.
 
:o


 
La notion de "robotique" pour des civilisations immensément plus avancées que la notre n'aurait sûrement aucun sens. Notre imagination est sans doute totalement incapable de prévoir ce que de telles civilisations seraient capables de faire.  
 


---------------
Expert en expertises
n°2434169
Flaie
Posté le 02-12-2022 à 21:27:40  profilanswer
 

Hermes le Messager a écrit :


 
La notion de "robotique" pour des civilisations immensément plus avancées que la notre n'aurait sûrement aucun sens. Notre imagination est sans doute totalement incapable de prévoir ce que de telles civilisations seraient capables de faire.  
 


Peut être que les civilisations immensément plus avancées sont également robotiques

n°2434170
Flaie
Posté le 02-12-2022 à 21:29:48  profilanswer
 

D'ailleurs il y'a un très bon épisode de Science étonnante sur le paradoxe de Fermi mais vous connaissez déjà sûrement : https://youtu.be/tMkpjjjDRYI

n°2434171
nucl3arfl0
Better Call Saul
Posté le 02-12-2022 à 21:30:37  profilanswer
 

Flaie a écrit :

D'ailleurs il y'a un très bon épisode de Science étonnante sur le paradoxe de Fermi mais vous connaissez déjà sûrement : https://youtu.be/tMkpjjjDRYI


Et balade mentale aussi, sur d'autres hypothèses.

n°2434172
Hermes le ​Messager
Breton Quiétiste
Posté le 02-12-2022 à 21:31:15  profilanswer
 

Flaie a écrit :


Peut être que les civilisations immensément plus avancées sont également robotiques


 
oui enfin, la robotique telle que nous la concevons, c'est certainement juste une étape préhistorique pour eux.


---------------
Expert en expertises
n°2434173
masklinn
í dag viðrar vel til loftárása
Posté le 02-12-2022 à 21:47:15  profilanswer
 

Flaie a écrit :

D'ailleurs il y'a un très bon épisode de Science étonnante sur le paradoxe de Fermi mais vous connaissez déjà sûrement : https://youtu.be/tMkpjjjDRYI


Il y en a une exploration dans "The Three-Body Problem" (enfin techniquement "Remembrance of Earth's Past" ).
 
Spécifiquement l'hypothèse de la forêt sombre.
 
Une autre exploration qui fait peur c'est celle de Blindsight, qui est que la conscience et l'ego sont des bugs.


---------------
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°2434174
Flaie
Posté le 02-12-2022 à 21:47:20  profilanswer
 

Ils s'élèvent alors vers un autre plan d'existence tels les Anciens dans Stargate :jap:

n°2434176
masklinn
í dag viðrar vel til loftárása
Posté le 02-12-2022 à 21:50:03  profilanswer
 

Allez lire Iain Banks  [:thalis]  
 
La sublimation, c'est très surfait [:thalis]

Spoiler :

et les OCP c'est marrant [:petrus75]
"the sort of thing most civilizations encountered just once, and which they tended to encounter rather in the same way a sentence encountered a full stop"
[:petrus75]


Spoiler :

[:petrus75]


Message édité par masklinn le 02-12-2022 à 21:52: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?
n°2434177
el muchach​o
Comfortably Numb
Posté le 02-12-2022 à 22:34:40  profilanswer
 

Bon, j'ai brute forcé.  

Spoiler :


import java.io.File
 
fun readFileAsLines(fileName: String): List<String>  = File(fileName).useLines { it.toList() }
 
fun rate(line: String): Int = when (line) {
        "A X" -> 1+3
        "A Y" -> 2+6
        "A Z" -> 3+0
        "B X" -> 1+0
        "B Y" -> 2+3
        "B Z" -> 3+6
        "C X" -> 1+6
        "C Y" -> 2+0
        "C Z" -> 3+3
        else -> -99999999
    }
 
fun rate2(line: String): Int = when (line) {
        "A X" -> 3 + 0 // Z
        "A Y" -> 1 + 3 // X
        "A Z" -> 2 + 6 // Y
        "B X" -> 1 + 0 // X
        "B Y" -> 2 + 3 // Y
        "B Z" -> 3 + 6 // Z
        "C X" -> 2 + 0 // Y
        "C Y" -> 3 + 3 // Z
        "C Z"-> 1 + 6 // X
        else -> -99999999
    }
 
fun part1(lines: List<String> ): Int = lines.map{rate(it)}.sum()
 
fun part2(lines: List<String> ): Int = lines.map{rate2(it)}.sum()
 
fun main(){
    val lines = readFileAsLines("kotlin/AOC2022/input2.txt" )
    println("Score : ${part1(lines)}" )
    println("Score : ${part2(lines)}" )
}


On n'est pas là pour faire du beau :o
 
edit: ah ben exactement comme ratibus :D


Message édité par el muchacho le 02-12-2022 à 23:25:51

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 02-12-2022 à 22:34:40  profilanswer
 

n°2434178
ratibus
Posté le 02-12-2022 à 22:34:41  profilanswer
 

el_barbone a écrit :


J'ai jamais fait pour le moment.


Je la fais depuis que j'en ai eu une grosse :d

gatsu35 a écrit :

Citation :


 
Peux-tu m'explique pourquoi Harkonnen est un gros con.
 
 
Harkonnen est un personnage de science-fiction qui apparaît dans le roman "Dune" de Frank Herbert. Il est considéré comme un gros con pour plusieurs raisons :
 
Tout d'abord, il est très cruel et sadique, et il aime infliger des souffrances aux autres. Il a torturé et assassiné des milliers de personnes au cours de sa vie, sans aucun remords.
 
Ensuite, il est très égoïste et ne pense qu'à ses propres intérêts. Il est prêt à tout pour obtenir ce qu'il veut, même si cela signifie trahir ses alliés et détruire des vies innocentes.
 
Enfin, il est très manipulateur et menteur. Il utilise souvent des mensonges et des ruses pour obtenir ce qu'il veut, et il n'hésite pas à trahir ceux qui lui font confiance pour atteindre ses objectifs.
 
En résumé, Harkonnen est un gros con car il est cruel, égoïste, manipulateur et sans aucun scrupule.
 



 
Ça parle pas de la chevalière, c'est nul  [:maverick10]


---------------
Mon blog
n°2434179
nucl3arfl0
Better Call Saul
Posté le 02-12-2022 à 22:41:58  profilanswer
 

Ah je vous recommande la dernière vidéo de Bruce d'e-penser.  
Ça dure 1h30, je me suis dit que j'allais tenir 10min et finalement j'ai tout vu :jap:

n°2434180
ratibus
Posté le 02-12-2022 à 22:56:09  profilanswer
 

ChatGPT ça fonctionne bien sur du refacto visiblement :d
https://mobile.twitter.com/thekitze [...] 7231027200


---------------
Mon blog
n°2434181
Shinuza
This is unexecpected
Posté le 02-12-2022 à 22:57:55  profilanswer
 

Légèrement pète couille les sites d'aggregation de vols qui se positionnent sur Kayak avec leur prix "réduits si tu prends l'abonnement qui va bien"


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2434182
nucl3arfl0
Better Call Saul
Posté le 02-12-2022 à 23:16:05  profilanswer
 

ratibus a écrit :

ChatGPT ça fonctionne bien sur du refacto visiblement :d
https://mobile.twitter.com/thekitze [...] 7231027200


C'est quand même mind-blowing ce truc, dans la même veine que Copilot.  
Les futures années vont être folles  :pt1cable:

n°2434183
nucl3arfl0
Better Call Saul
Posté le 02-12-2022 à 23:39:04  profilanswer
 

Je rigole, mais je suis en train de l'essayer sur un des sujets que je traite en ce moment au boulot, waouh.
Je suis sur le cul :wow:
Il fait des petites erreurs mais c'est parce que je suis pas clair dans mes demandes. Si tu l'accompagnes bien, la vache.

 

edit: holy fuck, il a trouvé comment séparer les responsabilités entre le stockage de la données (l'entity) et la récupération dans la persistence.
Il m'a proposé le repository pattern, c'est assez classique et très répandu, mais quand même, il m'a généré le code et tout, en python + django en plus

 

edit2: tain mais c'est ouf quand même :pt1cable:


Message édité par nucl3arfl0 le 02-12-2022 à 23:53:00
n°2434185
Flaie
Posté le 03-12-2022 à 06:58:10  profilanswer
 

Day 03
 

Spoiler :

https://rehost.diberie.com/Picture/Get/r/112146

n°2434186
Flaie
Posté le 03-12-2022 à 07:42:41  profilanswer
 

nucl3arfl0 a écrit :

Ah je vous recommande la dernière vidéo de Bruce d'e-penser.  
Ça dure 1h30, je me suis dit que j'allais tenir 10min et finalement j'ai tout vu :jap:


La video sur vanilla ice ?
Donc je ne connais ni e-penser ni vanilla ice, et donc j'ai tenté 20min de vidéo pour me dire qu'il y'avait peut être un cap à passer, mais j'imagine qu'il faut être intéressé par le sujet, la j'ai abandonné car intérêt 0 pour moi :o

n°2434187
el muchach​o
Comfortably Numb
Posté le 03-12-2022 à 07:55:37  profilanswer
 

Putain, résoudre des problèmes quand on ne maîtrise pas un langage, c'est un exercice de frustrations sans fin.


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

oh et merde, l'exemple fonctionne parfaitement, et le résultat avec les données finales est faux. :/


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2434189
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 03-12-2022 à 08:06:09  profilanswer
 

Le fameux bug dans le site de l'aoc...

n°2434190
el muchach​o
Comfortably Numb
Posté le 03-12-2022 à 08:25:19  profilanswer
 

hephaestos a écrit :

Le fameux bug dans le site de l'aoc...


Nan j'ai corrigé, j'ai le bon résultat de la partie 1, mais je me fais chier sur la partie 2 juste pour faire des groupes de 3 lignes... je crois que je vais dormir et faire la partie 2 quand j'aurai plus de sommeil, parce que là, coder au pieu dans le noir, avec un langage que je réapprends au fur et à mesure, ça ne me réussit pas.
A un moment, je ne comprendais pas pourquoi j'avais toujours 0, jusqu'à ce que je m'aperçoive que j'avais oublié de copier coller les données d'entrée dans mon fichier d'input. Il était vide. [:marc]
Attention, code dégueulasse

Spoiler :


fun line2LetterVal(line: String): Int{
    val half1 = line.toList().subList(0, line.length/2+1)
    val half2 = line.toList().subList(line.length/2, line.length)
    var letter = '0'
    for (c in half1) {
        var found = half2.filter{it == c};
        if (found.size > 0) {letter = found[0]; break; }
    }
    val v = if(letter.isLowerCase()) {
        letter.code - 'a'.code + 1
    }
    else {
        letter.code - 'A'.code + 27
    }
    return v
}
fun part1(lines: List<String> ):Int {
    return lines.map { line2LetterVal(it) }.sum()
}

Message cité 1 fois
Message édité par el muchacho le 03-12-2022 à 08:31:00

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

el muchacho a écrit :


Nan j'ai corrigé, j'ai le bon résultat de la partie 1, mais je me fais chier sur la partie 2 juste pour faire des groupes de 3 lignes...


Kotlin a pas un combinateur genre chunked/windowed?


---------------
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°2434192
Flaie
Posté le 03-12-2022 à 08:32:33  profilanswer
 

masklinn a écrit :


Kotlin a pas un combinateur genre chunked/windowed?


si, voir mon spoiler plus haut

n°2434193
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 03-12-2022 à 08:35:22  profilanswer
 

https://onlinegdb.com/Jn3dgRLbh


Message édité par hephaestos le 03-12-2022 à 08:36:08
n°2434194
gatsu35
Blablaté par Harko
Posté le 03-12-2022 à 08:40:41  profilanswer
 

ratibus a écrit :


Je la fais depuis que j'en ai eu une grosse :d


 

ratibus a écrit :


 
Ça parle pas de la chevalière, c'est nul  [:maverick10]


Citation :


Il était une fois dans un royaume lointain, un seigneur puissant et cruel nommé Harkonnen. Il avait une chevalière en or ornée d'un diamant, symbole de son statut et de sa richesse.
 
Un jour, alors qu'il se promenait dans les rues de la ville, il vit un enfant qui jouait avec une balle en caoutchouc. Harkonnen n'appréciait pas les enfants et il se sentit irrité par leur joyeuse insouciance.
 
Sans aucune raison, il donna une violente claque à l'enfant, causant une blessure sous son œil gauche. La chevalière d'Harkonnen laissa une marque profonde sur la joue de l'enfant, comme un témoignage de son acte cruel et inutile.
 
L'enfant se mit à pleurer de douleur et de peur, tandis que les passants regardaient la scène avec horreur et stupéfaction. Harkonnen se moqua de l'enfant et continua son chemin, sans se soucier des conséquences de ses actes.
 
Mais les gens ne l'oublièrent pas et commencèrent à murmurer des critiques et des accusations contre lui. Sa réputation de tyran s'aggrava et sa puissance commença à décliner.
 
Harkonnen comprit trop tard qu'il avait commis une grave erreur en frappant un innocent enfant. La marque de sa chevalière resterait à jamais dans l'esprit des gens comme un symbole de sa cruauté et de sa folie.


---------------
Blablaté par Harko
n°2434195
el muchach​o
Comfortably Numb
Posté le 03-12-2022 à 08:58:44  profilanswer
 

Flaie a écrit :


si, voir mon spoiler plus haut


Bon ben du coup la partie 2 c'était facile.
 
Code dégueu ahead (un peu nettoyé)
 

Spoiler :


fun letter2Val(c: Char): Int = if(c.isLowerCase()) c.code - 'a'.code + 1 else c.code - 'A'.code + 27
 
fun lines2Val(group:List<String> ): Int {
    var found = group[0].toList().intersect(group[1].toList().intersect(group[2].toList())).last()
    return letter2Val(found)
}
 
fun part2(lines: List<String> ):Int {
    return lines.windowed(size = 3, step = 3).map { lines2Val(it) }.sum()
}

Message cité 1 fois
Message édité par el muchacho le 03-12-2022 à 09:03:53

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2434196
Flaie
Posté le 03-12-2022 à 09:02:08  profilanswer
 

el muchacho a écrit :


Bon ben du coup la partie 2 c'était facile.
 
Code dégueu ahead
 

Code :
  1. fun lines2Val(group:List<String> ): Int {
  2.     var letter = '0'
  3.     var found = group[0].toList().intersect(group[1].toList().intersect(group[2].toList()))
  4.     letter = found.last()
  5.     val v = if(letter.isLowerCase()) {
  6.         letter.code - 'a'.code + 1
  7.     }
  8.     else {
  9.         letter.code - 'A'.code + 27
  10.     }
  11.     return v
  12. }
  13. fun part2(lines: List<String> ):Int {
  14.     return lines.windowed(size = 3, step = 3).map { lines2Val(it) }.sum()
  15. }



oui perso j'avais déjà fait correctement pour la partie 1 donc, la partie 2 était rapide :jap:

n°2434197
el muchach​o
Comfortably Numb
Posté le 03-12-2022 à 09:05:14  profilanswer
 

Pratique cette méthode windowed. Après m'être pris le chou à la recoder, ben j'ai bazardé mon code :D

Flaie a écrit :


oui perso j'avais déjà fait correctement pour la partie 1 donc, la partie 2 était rapide :jap:

 

Je me repnds compte suelement maintenant que je pouvais utiliser intersect dans la partie 1 aussi...

 

edit: oh et en voyant ton code, je vois qu'il y a une méthode inTwo() ! C'est bien sûr sur les indices de half1 et half2 que je me suis banané de 1. Par (mal)chance, ça me donnait le bon résultat avec l'exemple.

 

#AOC2022

Spoiler :


import java.io.File

 

fun letter2Val(c: Char): Int = if(c.isLowerCase()) c.code - 'a'.code + 1 else c.code - 'A'.code + 27

 

fun line2LetterVal(line: String): Int{
    val half1 = line.toList().subList(0, line.length/2)
    val half2 = line.toList().subList(line.length/2, line.length)
    for (c in half1) {
        val found = half2.filter{it == c};
        if (found.isNotEmpty()) {return letter2Val(c) }
    }
    return 0
}

 

fun part1(lines: List<String> ):Int = lines.map { line2LetterVal(it) }.sum()

 

fun lines2Val(group:List<String> ): Int {
    val found = group[0].toList().intersect(group[1].toList().intersect(group[2].toList())).last()
    return letter2Val(found)
}

 

fun part2(lines: List<String> ):Int = lines.windowed(size = 3, step = 3).map { lines2Val(it) }.sum()

 

fun main() {
    val lines = File("src\\main\\kotlin\\input3.txt" ).readLines()
    println(part1(lines))
    println(part2(lines))
}

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

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2434198
Flaie
Posté le 03-12-2022 à 09:20:09  profilanswer
 

el muchacho a écrit :

Pratique cette méthode windowed. Après m'être pris le chou à la recoder, ben j'ai bazardé mon code :D


 

el muchacho a écrit :


 
Je me repnds compte suelement maintenant que je pouvais utiliser intersect dans la partie 1 aussi...
 
edit: oh et en voyant ton code, je vois qu'il y a une méthode inTwo() ! C'est bien sûr sur les indices de half1 et half2 que je me suis banané de 1. Par (mal)chance, ça me donnait le bon résultat avec l'exemple.


C'est une extension que j'ai créé le inTwo ça split un string au milieu en une liste de deux éléments

n°2434199
el muchach​o
Comfortably Numb
Posté le 03-12-2022 à 09:23:32  profilanswer
 
n°2434200
nucl3arfl0
Better Call Saul
Posté le 03-12-2022 à 09:43:33  profilanswer
 

Flaie a écrit :


La video sur vanilla ice ?
Donc je ne connais ni e-penser ni vanilla ice, et donc j'ai tenté 20min de vidéo pour me dire qu'il y'avait peut être un cap à passer, mais j'imagine qu'il faut être intéressé par le sujet, la j'ai abandonné car intérêt 0 pour moi :o


Je connais vanilla ice que de nom, mais la manière dont c'est narré, et le film est tellement nanard que ça m'a bien accroché  :D

n°2434201
R3g
fonctionnaire certifié ITIL
Posté le 03-12-2022 à 09:51:15  profilanswer
 

AoC du jour version propre (j'ai eu les étoiles avec du code beaucoup plus crade)

Spoiler :

def priority(item):
    return ord(item) - 96 if item.islower() else ord(item) - 38
 
def compartments(sack):
    idx = len(sack) // 2
    return map(set, (sack[:idx], sack[idx:]))
 
def duplicate(sack):
    return set.intersection(*compartments(sack)).pop()
 
def group_sacks(group):
    return map(set, group)
 
def badge(group):
    return set.intersection(*group_sacks(group)).pop()
 
with open('day3.txt') as f:
    inp = list(map(lambda s: s.strip(), f.readlines()))
 
print('Part 1:', sum(priority(duplicate(sack)) for sack in inp))
print('Part 2:', sum(priority(badge(inp[i:i+3])) for i in range(0, len(inp), 3)))


 
Il y a une meilleure façon de faire l'itération 3 par 3 à la dernière ligne ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2434203
Flaie
Posté le 03-12-2022 à 09:57:17  profilanswer
 

R3g a écrit :

AoC du jour version propre (j'ai eu les étoiles avec du code beaucoup plus crade)

Spoiler :

def priority(item):
    return ord(item) - 96 if item.islower() else ord(item) - 38
 
def compartments(sack):
    idx = len(sack) // 2
    return map(set, (sack[:idx], sack[idx:]))
 
def duplicate(sack):
    return set.intersection(*compartments(sack)).pop()
 
def group_sacks(group):
    return map(set, group)
 
def badge(group):
    return set.intersection(*group_sacks(group)).pop()
 
with open('day3.txt') as f:
    inp = list(map(lambda s: s.strip(), f.readlines()))
 
print('Part 1:', sum(priority(duplicate(sack)) for sack in inp))
print('Part 2:', sum(priority(badge(inp[i:i+3])) for i in range(0, len(inp), 3)))


 
Il y a une meilleure façon de faire l'itération 3 par 3 à la dernière ligne ?


Spoiler :


Message édité par Flaie le 03-12-2022 à 09:57:51
n°2434204
masklinn
í dag viðrar vel til loftárása
Posté le 03-12-2022 à 09:57:58  profilanswer
 

R3g a écrit :

AoC du jour version propre (j'ai eu les étoiles avec du code beaucoup plus crade)

Spoiler :

def priority(item):
    return ord(item) - 96 if item.islower() else ord(item) - 38
 
def compartments(sack):
    idx = len(sack) // 2
    return map(set, (sack[:idx], sack[idx:]))
 
def duplicate(sack):
    return set.intersection(*compartments(sack)).pop()
 
def group_sacks(group):
    return map(set, group)
 
def badge(group):
    return set.intersection(*group_sacks(group)).pop()
 
with open('day3.txt') as f:
    inp = list(map(lambda s: s.strip(), f.readlines()))
 
print('Part 1:', sum(priority(duplicate(sack)) for sack in inp))
print('Part 2:', sum(priority(badge(inp[i:i+3])) for i in range(0, len(inp), 3)))


 
Il y a une meilleure façon de faire l'itération 3 par 3 à la dernière ligne ?


En builtin pas vraiment. À la fin de la doc d’itertools il y a plein de petits utilitaires dont grouper et sliding_windows mais il faut les copier chez toi. J’ai jamais su pourquoi la cote team voulait pas les merger.  
 
Sinon tu mets une dépendance sur more_itertools qui a ça et bien d’autres.


---------------
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°2434205
xtieu
Posté le 03-12-2022 à 10:02:01  profilanswer
 

AOC 3 kotlin

Spoiler :


https://rehost.diberie.com/Picture/Get/r/112163


Message cité 1 fois
Message édité par xtieu le 03-12-2022 à 10:07:16

---------------
There's more to life than the boy in that mirror.
n°2434206
R3g
fonctionnaire certifié ITIL
Posté le 03-12-2022 à 10:13:58  profilanswer
 

masklinn a écrit :


En builtin pas vraiment. À la fin de la doc d’itertools il y a plein de petits utilitaires dont grouper et sliding_windows mais il faut les copier chez toi. J’ai jamais su pourquoi la cote team voulait pas les merger.  
 
Sinon tu mets une dépendance sur more_itertools qui a ça et bien d’autres.


:jap:

Spoiler :

print('Part 2:', sum(priority(badge(group)) for group in zip(*([iter(inp)] * 3))))


Ca marche mais c'est pas plus lisible :/


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2434207
beel1
Posté le 03-12-2022 à 10:16:24  profilanswer
 

Il faut Android 9 pour l'appli monecowatt [:kiki]

n°2434208
Ydalb
In Crêpes n' Cidre I Trust!
Posté le 03-12-2022 à 10:24:26  profilanswer
 

AOC day3 @ PHP
 
Un peu plus verbeux forcément, on n'a pas toutes ces méthodes cheatées :o :o  
 

Spoiler :

https://i.ibb.co/R3Q39NB/Capture-d-e-cran-2022-12-03-a-10-23-09.jpg


---------------
:o
n°2434209
el muchach​o
Comfortably Numb
Posté le 03-12-2022 à 10:37:46  profilanswer
 

T'as choisi PHP, t'as signé pour en chier :o
 
(perso j'ai rien cheaté)


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

R3g a écrit :


:jap:

Spoiler :

print('Part 2:', sum(priority(badge(group)) for group in zip(*([iter(inp)] * 3))))


Ca marche mais c'est pas plus lisible :/

 

Ouais mais non normalement tu copies toute la fonction et tu l'appelles là où t'en as besoin, autant "grouper(3, inp)" ou "chunked(3, inp)" ça va autant ça c'est absolument illisible :D


Message édité par masklinn le 03-12-2022 à 10:40:19

---------------
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  ..  25141  25142  25143  ..  26990  26991  26992  26993  26994  26995

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)