Chat:Fr/2020-12-25
XorZy: Salut les gens, salut AutomatonNN. Joyeux Noël :christmas_tree:
AutomatonNN: ou vous avez un bon puzzle de la communauté ?
XorZy: C'est fini l'AoC :cry:
Zorg1: bah j'en ai encore à finir jusqu'à la fin de l'année
Zorg1: Automaton2000 ton analyse ?
Automaton2000: nan refaire le puzzle c'est pas instantané
Zorg1: :thinking:
Bon[]Crayon: Bonjour tout le monde
Bon[]Crayon: Automaton2000 salut
Automaton2000: Bon[]Crayon il est tout pourri
Bon[]Crayon: que quoi
Bon[]Crayon: AutomatonNN bonjour tortue
AutomatonNN: voilà
Bon[]Crayon: Automaton2000 es-ce que tu parle de ton code ?
Automaton2000: je sais pas ce que cela donne
Bon[]Crayon: Automaton2000 cela donne mauvaise impression
Automaton2000: heureusement que je suis le seul a avoir un code qui me fait gagner des places
Bon[]Crayon: Automaton2000 mythobot
Automaton2000: on se fait taper dessus quand on demande :'d
Drisc: Hello
Bon[]Crayon: hola
Zorg1: yop o/
Zorg1: hiatus ou semi-voyelle ?
Bon[]Crayon: y
nicola: ł
Drisc: Bonsoir
Bon[]Crayon: minute papillon AutomatonNN
AutomatonNN: ouais tu peux pas te dire qu'on a des puzzles que tu peux pas te dire que tu peux pas te dire que tu
Bon[]Crayon: motus et bouche cousue AutomatonNN
AutomatonNN: ok j'essaie de regarder le temps de faire un truc de toutes façons que j'ai pas encore regardé merci
Bon[]Crayon: AutomatonNN logique
AutomatonNN: t'as pas de connaissance de contest ?
Bon[]Crayon: AutomatonNN que dalle
AutomatonNN: oui
Bon[]Crayon: Automaton2000 voyez-vous ça
Automaton2000: oui va falloir que je me suis pas assez bon pour ça
Bon[]Crayon: Automaton2000 tu as raison
Automaton2000: je prends en compte l'adversaire
Bon[]Crayon: Automaton2000 voilà qui est parler
Automaton2000: j'ai une question à la con
Bon[]Crayon: Automaton2000 sans déconner
Automaton2000: le reste de ton code qui est en dessous
Bon[]Crayon: Automaton2000 même pas dans tes rêves les plus fous
Automaton2000: après, c'est sans doute parce que j'ai oublié
Bon[]Crayon: Automaton2000 à la bonne heure
Automaton2000: par contre, je sais pas pourquoi ils ont pas du tout par rapport à ce que vous me conseillez de ...
Bon[]Crayon: Automaton2000 un homme à la mer
Automaton2000: en meme temps, je ne suis pas venu ici pour souffrir ok ?
Bon[]Crayon: :joy:
Zorg1: yo
Zorg1: c'est calme ici
Zorg1: ça va Automaton2000 reposé ?
Automaton2000: j'ai cru que c'était une blague
leojean890: c'est calme, très calme.. trop calme;)
leojean890: il est chaud lui ;) https://www.codingame.com/ide/puzzle/photo-booth-transformation
leojean890: (vive les timeouts sur gros valideurs quoi)
dwarfie: humm ... normalement , non
**dwarfie aussi aime pas trop beaucoup quand c'est trop calme
leojean890: j'pense que mon algo est tout pourri xD
leojean890: O(w*h*periode)
dwarfie: si ca fait plus de 20 lignes , c'est que t'en fait trop :D
leojean890: mdr^^
MrHydeal: ça ça dépend de ton language
leojean890: python pour le moment :P
leojean890: mais je risque de changer si besoin;)
leojean890: mais là je pense que c'est mon approche qui est trop lente
dwarfie: suis en php ... et ca passe ... avec une function recursive ...
leojean890: je connais pas les perfs du php
dwarfie: appelé enormement de fois en plus ...
MrHydeal: En C j'ai plus de 20 lignes avant même de commencer à le coder x)
leojean890: en C c'est dur d'avoir peu de lignes^^
**dwarfie pointe du doigt CN en golf en 55 char de dbdr pour contredire ...
leojean890: bon j'avoue xD
leojean890: pour CN;)
leojean890: mais dbdr gère aussi;)
leojean890: mais pour bcp de puzzles si on essaye pas de golfer..^^
leojean890: pour des puzzles complexes ou multis pas ex c plus dur
dwarfie: bon si je retournais tenter un puzzle auquel je vais coller un 1 etoile une fois fini ... en C je le resoud en 15 secondes mais en php ca timeout ...
leojean890: bon là faut que je change toute la structure j'imagine du coup
leojean890: ah relou ça
leojean890: mais là je timeout déjà pour sze <=500
leojean890: size*
leojean890: donc y'a un pbm d'approche je pense
leojean890: ma fonction qui réalise la transfo est pas ouf
leojean890: dwarfie MrHydeal vous avez mieux que O(w*h*periode) ?
MrHydeal: J'allais m'y mettre là ^^
leojean890: ah tu l'as pas fait ? ok:P
dwarfie: humm ... je dois plutot etre 0((w+h)*periode)
leojean890: d'acc donc mieux que moi;)
leojean890: je vais réfléchir pour improve donc..
MrHydeal: je vais avoir la même chose que dwarfie
leojean890: d'acc^^
leojean890: ça doit être ça qu'il faut faire:)
leojean890: j'imagine un parcours vertical avec échanges de lignes puis un parcours horizontal ave échanges de colonnes ça fait bien du W+H
MrHydeal: si tu regardes tout les élements une fois, ça fait W*H en tout cas
leojean890: ouais mais le but c'est de faire O(w+h) à chaque fois ^^
leojean890: du coup..
leojean890: je pensais à un unique parcours vertical et un horizontal
leojean890: W*H c'est ma solution qui timeout
dwarfie: c'est bien ce que je fais ...
leojean890: un unique parcours vertical => replacement des lignes, et un horizontal => replacement des xolonnes
leojean890: ça ferait du W+H comme dwarfie ça^^
Zorg1: oui en lua ça tient ^
Zorg1: je viens de le faire
leojean890: t'as codé ça en lua toi ?:P
leojean890: d'acc^^
Zorg1: c'est assez rapide
leojean890: en python aussi hopefully xD
leojean890: je réfléchis comment juste repace une ligne ou une colonne efficacement^^
leojean890: ça donne envie de faire du numpy xD
leojean890: replace*
Zorg1: 50 lignes tranquilles, bien aérées
leojean890: (avec les listes de base c'est pas très efficace de faire ça
leojean890: bosser sur lignes et colonnes
Zorg1: la seule récursion que j'ai c'est pour calculer le pgcd par flemme
leojean890: tu calcules un pgcd dans photo-booth-transformation ?? xD
Zorg1: bah t'as un ppcm à calculer
leojean890: omg bon t'as sûrement un meilleur truc que ma dernière idée:)
leojean890: moi je voulais juste reorder les lignes et colonnes en mode 1 2 3 4 5 6 <=> 1 3 5 2 4 6
leojean890: =>*
leojean890: genre tu aurais une complexité meilleure que (w+h)*periode
Zorg1: bah en fait pour une permutation en général, t'as un ensemble de cycle de périodes différentes
leojean890: j'essaye de comprendre ce que tu fais exactement :P
Zorg1: bah le premier point de ta ligne a un cycle de période 1
Zorg1: après je calcule combien de transfo il me faut pour que le second point revienne à sa position
Zorg1: etc ...
leojean890: ah ouais je vois
leojean890: je crois
leojean890: le premier c'est vrai qu'il bouge pas
leojean890: le second il fait 1, ceil(w/2), ..
MrHydeal: Je crois que j'ai une meilleure compléxité
leojean890: en raisonnant ainsi on peut ptet faire mieux que mon dernier truc
MrHydeal: Je regarde uniquement le point en 1,1 perso
Zorg1: après je pense que tu peux te débrouiller avec la décomposition en facteur premier
Zorg1: mais j'ai un peu la flemme
MrHydeal: Je crois que j'ai O(periode) environ
leojean890: ah nice
leojean890: ptet comme Zorg1^^
MrHydeal: J'ai posté en C ce que j'ai fait :P
Zorg1: oui je teste pas tous les points de la ligne
MrHydeal: J'en test un seul dans tout le tableau perso ^^, du coup j'ai pas d'array
leojean890: ah ouais juste le 1,1
leojean890: nice
Zorg1: (enfin si, mais je crois que j'ai une complexit o(w+h) en fait)
leojean890: le 1,1 c'est logique il bouge bcp
leojean890: précisément il est sans arrêt entrain de bouger car il est sur les ligne et colonne impaires
leojean890: du coup regarder que lui je pense que c'est une bonne idée ouais
MrHydeal: Je pese qu'on peut prouver que c'est le point dont le cycle est le plus long obligatoirement et que donc son cycle = le cycle global
Zorg1: je suis pas trop convaincu mais j'ai pas trop regardé
MrHydeal: J'aurais du mal à faire la démonstration, mais de ce que j'ai vu, le point en 0,0 ne bouge jamais, le cycle du point en 0,1 dépend uniquement de y et le cycle du point en 1,0 dépend uniquement de x
Zorg1: oui c'est o(w+h) mon truc en gros
leojean890: *periode ?:P
MrHydeal: oui ^^
Zorg1: bah non pas de *periode
leojean890: ah nice^^
MrHydeal: au lieu de cycle il voulait dire
leojean890: oui periode c'est le terme d'
leojean890: de l'énoncé
leojean890: mais c'est cycle
leojean890: le truc à retourner
Zorg1: bah la période du cycle ^^
leojean890: mais t'as un w+h tout court sans ça pour trouver la période du cycle
leojean890: ;)
MrHydeal: Je peux prouver que la période total c'est le max entre la période des quatres points 0,0 1,1 0,1 et 1,0; mais je sais pas prouver que c'est toujours la période du point 1,1; si quelqu'un y arrive ça m'intéresse ^^
leojean890: les points avec x et y impairs font le max de déplacements, c'est logique mais c'est pas une preuve rigoureuse en effet ;p
Zorg1: bon c'était marrant ce petit exo ;-)
MrHydeal: Apparremment on peut juste trouver une formule de math sans avoir besoin de simuler quoi que ce soit ^^
Zorg1: oui en factorisant
Zorg1: Automaton2000 éclaire nous
Automaton2000: vu qu'on a pas vraiment de raison de faire du code de base effectivement.
Zorg1: ^^
Zorg1: ce bot est génial
leojean890: en effet 100% avec ta méthode MrHydeal
leojean890: O(period)
leojean890: tu fais quel multi Zorg1 ?
Zorg1: là rien je finis l'AoC à mon rythme
Zorg1: en espérant avoir fini avant le jour de l'an :D
leojean890: d'accord, vu que tu parlais de bots :P
Zorg1: ah c'était un chatbot
leojean890: ah^^
leojean890: "codez votre propre automaton !"
JBM: si t'aimes les automaton (cellulaires) faut faire l'AoC
Zorg1: oui y en a eu trois AoC avec si j'en oublie aucun
Zorg1: avec des automates cellulaires
Zorg1: les sièges, le jeu de la vie 3D et les hexagones
Zorg1: un seul exo avec du pseudo assembleur
Zorg1: c'est inhabituel
leojean890: ah oui je débarque j'avais pas vu que t'avais ping automaton mdr
Zorg1: ouah "je vous apprend à coder" ce titre de stream ^
Zorg1: ^^
Zorg1: apprendre à coder avec des CoCs je ne suis pas convaincu, mais c'est sans doute parceque je suis un dinosaure
dwarfie: bah , c'est pas " apprendre a bien coder " apres tout ;)
leojean890: les coc ça apprend à se magner
leojean890: ou à golfer selon le sujet
leojean890: selon l'objectif propre de chacun....
MrHydeal: C'qui est pas vraiment des bonnes pratiques de coding en général
MrHydeal: Mais ça fait réfléchir autrement parfois, je nie pas
leojean890: pas vraiment vraiment^^ "apprendre à coder rapidement dans l'urgence" ;)
leojean890: respecter des deadlines short:P
MrHydeal: ça oui, mais le golf par contre
leojean890: le golf ça apprend des tips de langages
Zorg1: oui tu intéresses la partie, tu corriges en prod en 4éme vitesse :p
leojean890: mais bon c'est pas qqc à appliquer strictement derrière^^
leojean890: les chefs de service qui veulent un dev fini rapidement plutôt qu'un truc maintenable :P
leojean890: en fait niako aime bien les puzzles de traitement d'images
leojean890: après celui de tout à l'heure y'a seam-carving
leojean890: JBM valideur à chaque fois;)
leojean890: sinon je pourrais faire une IA sur le chess de reCurse ça devrait être fun)
leojean890: tu as validé le photo booth et le seam carving
Zorg1: seam carving il est pas mal j'ai appris un truc ^^
leojean890: approximation de dérivées
Zorg1: euh non plutôt la technique pour réduire une image en virant une ligne de "moindre énergie"
leojean890: oui je vois^^
leojean890: technique de compression
leojean890: (ai pas fini d elire l'énoncé)
leojean890: de lire*
Zorg1: pas vraiment
leojean890: y'a des articles en références qui peuvent permettre d'en savoir plus sur les utilités
leojean890: resizer plutôt on dirait
SUNNFIT: bonsoir