Chat:Fr/2021-02-08

From CG community
Jump to navigation Jump to search

Stilgart: leojean890: une forêt de if de 130 lignes

Stilgart: Bob: j'en fais quoi de ton clash... je le refuse parce qu'il est trop facile, où je le valide parce que les gens qui font du clash seront incapable de le résoudre ? :p

Stilgart: (sinon, je le mettrais que en shortest)

Stilgart: bon, je vois pas mieux que 24 char en bash

ShawnHeyli: prout

Galitan-dev: \o merci Zorg1

Default avatar.png npo: Bonjour

Stilgart: o/ Galitan-dev

Space_890: Salut

Bon[]Crayon: Salut, salut :grinning:

Bon[]Crayon: AUTOMATON2000 SALUT LA TORTUE DU NET :turtle:

Automaton2000: bien sûr que si tu fais la somme des deux

Bon[]Crayon: AUTOMATON2000+AUTOMATONNN=MEGAAUTOMATON

AutomatonNN: et AutomatonNN ?

Automaton2000: y a une erreur de code

Bon[]Crayon: AUTOMATON2000 Abusing the System

Automaton2000: tu vois un coup gagnant

Bon[]Crayon: AutomatonNN ? Tu es toi !

AutomatonNN: si t'as pas de chance de contrer toi tu peux pas te dire que tu as un truc que tu as des modifs par

Bon[]Crayon: AutomatonNN Ta logique m'échappe.

AutomatonNN: oui

Alshock: coucou

Bon[]Crayon: o/

philRG: le awk pas mal pour faire rapidement de l'extraction de logs système, en utilisant des délimiteurs

philRG: o/

philRG: solution de monitoring peu coûteuse

philRG: bon je pense que je vais pas abuser de mon pouvoir de contributeur sur celui-ci :o)

philRG: https://www.codingame.com/contribute/view/5800a36c655f42f53885c128d09eaed15f7f

philRG: s/contributeur/validateur/

Zorg1: bof il est en wip il le fait tourner juste pour troller/narguer

Zorg1: vu qu'il avait fait 300 puzzles dans tous les langages dispos

Zorg1: Sinon AutomatonNN & Automaton2000 la forme les bots ?

Automaton2000: oui mais on te demande de faire une partie de ton code

AutomatonNN: genre tu t'en fous de la conversation du contest pour pouvoir te proposer de tout cas

Zorg1: bah oui je m'en fous AutomatonNN y a pas de contest en cours ;-)

AutomatonNN: oui je suis tout seul sur le truc de ce que je peux faire mais il a pas l'air de pas tortuer des tru

Zorg1: "tortuer" joli AutomatonNN :D

AutomatonNN: bas technique de contest de contest ou t'es mourir ?

Alshock: wouah il est devenu gothique AutomatonNN ? Qu'est-ce que t'as fait à ton petit frère Automaton2000

AutomatonNN: oui

Automaton2000: si ce n'est pas plus rapide

Alshock: Automaton2000 alors quoi ?

Automaton2000: le truc de base pour que ça passe pas

Stilgart: EAPS

Stilgart: Automaton2000: ça s'appelle une tortue ton truc

Automaton2000: je dis juste que c'est pas parce qu'on ne va pas durer

Stilgart: Automaton2000: :(

Automaton2000: il y a que des trolls sur ce chat

Stilgart: ha bah merci

[CG]Thibaud: ça fait toujours plaisir

Stilgart: pas comment les repops de contribs arrivées à échéances et avec 1 refus et un score de -9

Stilgart: au final, elle sert vraiment plus à rien la limite des 30j

Stilgart: (à part si opérer une rotation dans la liste des contribs est considéré comme une fonctionnalité)

[CG]Thibaud: on va dire qu'elle permet d'évacuer quelques contribs si leurs auteurs sont définitevement partis

Alshock: autant le problème est trivial à identifier, autant j'ai pas beaucoup de propals à lui faire

Stilgart: je suis un peu à court de propal aussi

Alshock: comme des bambas tristes ?

Stilgart: rien n'empêche la légion de smurf pour contourner les limites

Alshock: faudra vraiment que quelqu'un m'explique pourquoi les alts se sont transformés en smurfs, encore un effet de James Cameron ?

**Stilgart rate le rapport

Stilgart: ou alors c'est une réf torude à South Park

Stilgart: Automaton2000: n'apprends pas de mes fautes de frappe ste plait !

Automaton2000: c'est juste que comme je suis le seul à avoir un bot qui a fait une erreur

Default avatar.png Kurosaif: salut je me posais une question existe t il une ponction python pour trier une liste par rapport a 0?

Zorg1: tu veux ponctionner python ? :scream:

Zorg1: (oui je sais c'était facile)

Default avatar.png Kurosaif: ponctionner?

Default avatar.png Kurosaif: ah xd nan fonction*

Default avatar.png Natior12: sorted(l, key=lambda x: x[0])

Default avatar.png Natior12: tu mets ta liste en premier argument

Default avatar.png Natior12: et à la place de x[0] tu mets 0 ça devrait marcher

Default avatar.png Kurosaif: je vais essayer merci

Default avatar.png Natior12: faut que t'enregistre ça dans une variable

Default avatar.png Natior12: et sinon avec sort()

Default avatar.png Natior12: ça modifie la liste originale

POLOB: Hello tt le monde

POLOB: Automaton2000 et AutomatonNN, ça va ?

AutomatonNN: -_-

Automaton2000: si je comprends bien que c'est ça :

philRG: trier une liste % à zéro!!!

philRG: sorted(liste) et puis c tout

philRG: ou liste.sort() ça la modifie

Default avatar.png Kurosaif: en fait c est pour trier avec des elements positifs et negatifs

Default avatar.png Kurosaif: [1,-2,-6,8,10,..] par exemple

philRG: ben ce sont des entiers relatifs, la question est pas claire

philRG: la méthode sort() trie dans l'ordre croissant, et reverse() décroissant c tout

BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !

AutomatonNN: ok

Automaton2000: du coup vous avez pas le temps de mettre le nom de la boite

Default avatar.png Kurosaif: et ma question etait s'il existait une fonction pour trier par rapport a 0?

BlaiseEbuth: Trier par rapport à zero ça veut rien dire.

philRG: je n'osais pas le dire

philRG: la question est peut-être mal formulée

philRG: ou le besoin

Default avatar.png Kurosaif: disons alors les trier selon leur norme par rapport a 0

BlaiseEbuth: Meh...

philRG: ah c déjà mieux

BlaiseEbuth: Tu as quoi et tu veux obtenir quoi ?

philRG: sorted(l, key=lambda x:abs(x))

Default avatar.png Kurosaif: j'ai des entiers relatifs et je veux trouver celui qui est le plus proche de 0

philRG: suffisait de demander

philRG: l Out[79]: [1, 2, -1, 4] sorted(l, key=lambda x:abs(x)) Out[80]: [1, -1, 2, 4]

BlaiseEbuth: A questions claires...

philRG: :thumbsup:

Default avatar.png Kurosaif: ahh merci beaucoup

philRG: c pour le puzzle Températures?

Default avatar.png Kurosaif: :grin::thumbsup:

Default avatar.png Kurosaif: exact

philRG: ça caille hihi bon je dois sortir à la poste, bon puzzle!

POLOB: je suis toujours épaté par la concision que permet python...

Default avatar.png Kurosaif: merci encore pour l aide

BlaiseEbuth: Plus con que cision mais ouai...

POLOB: :D

philRG: je ferai bien du C++ mais ma souris arrive pas bien à scroller, faut que j'en change

BlaiseEbuth: Le mec qui fait du python pour pas avoir besoin de scroller... :expressionless:

BlaiseEbuth: Lel, le forum considère www.codingame.com <http://www.codingame.com> comme une source potentielle de spam :upside_down:

POLOB: Ils ont peur qu'Automaton2000 et AutomatonNN se mettent à poster...

AutomatonNN: ou auto de partie de la compatibilite

Automaton2000: la taille de la liste de tous les temps

Alshock: BlaiseEbuth je trouve que l'argument du scroll est étonnamment valide

Alshock: t'en penses quoi toi Automaton2000 ?

Automaton2000: faut que tu lui donnes

Alshock: non ! c'est mon mien !

BlaiseEbuth: Je préfères scroller dans un code propre que d'avoir un concentré de merde statique sur mon écran.

BlaiseEbuth: Mais chacun ses goûts... :grin:

Bob: amis du gout o/

BlaiseEbuth: \o

philRG: BlaiseEbuth tout est une question de maîtrise

BlaiseEbuth: Les fameux maîtres du python... :3

philRG: certains langages sont plus permissifs que d'autres c sûr

philRG: déjà si j'arrive à maîtriser le français c déjà bien :)

philRG: c mon brother qui m'a incité à m'y mettre sur python, bah çà ou autre chose comme disait ma collègue :-D

philRG: vu mon niveau en algo, sur les contessts je prends le langage où je sois le plus fluent

philRG: que je pratique le plus

philRG: après est-ce que je pourrais coder en Haskell ou OCAML? Faudrait que j'essaye en fait

Bob: la question c'est pas tant de vouloir que d'en avoir envie :p

BlaiseEbuth: *pouvoir ?

Bob: ouais

Bob: ca me reussit bien d'etre en RTT dis donc

Bob: par exemple je "peux" coder en VB.Net ou Pascal

Bob: mais a ce stade je crois que tout est dit :)

Default avatar.png spectrosdennoce: une fois que on a la logique de developpement tu peut tout coder en vrai

BlaiseEbuth: Non

Default avatar.png spectrosdennoce: mais sa ce fait uniquement en traduisant du code a un autre ou en developpant dans un peux tout les languages en meme temps

Default avatar.png spectrosdennoce: pas tout coder pardons coder dans un peut tout les language

Bob: traduire d'un langage a un autre, c'est chiant dans le meilleur des cas et hasardeux dans la plupart

BlaiseEbuth: non quand même

BlaiseEbuth: Essayes de passer sur du fonctionnel sit t'as toujours fait de l'impératif

Bob: crois-en quelqu'un qui a eu un T-shirt en recodant son CSB C++ d'abord en Clojure puis en VB.Net

Bob: je plussoie BlaiseEbuth

Bob: dans mon projet actuel on a un gros seau de JS qui a ete ecrit par des gens qui arrivaient droit du C++

Bob: eh ben c'est carrement moche

BlaiseEbuth: Là j'ai envie de dire que du beau js faut le trouver...

Bob: oui mais c'est ton cote troll :)

BlaiseEbuth: Un peu... Mais pas que ^^

Default avatar.png spectrosdennoce: oui ba sa ce trouve quannd tu sait chercher 2 seconde tu fait quelque parralelle entre ce que tu connais deja et ce que tu doit chercher et c'est bon

BlaiseEbuth: Non

Default avatar.png spectrosdennoce: je parle pas de js

BlaiseEbuth: Parceque la manière de réfléchir n'est pas la même

Default avatar.png spectrosdennoce: oui et donc ?

philRG: c sûr retranscrire un code d'un langage vers un autre n'est pas l'idée

BlaiseEbuth: Alors y'a pas de parallèles à faire, si les concepts n'ont pas d'équivalents

Default avatar.png spectrosdennoce: oui ba c'est ce que j'ai dit

BlaiseEbuth: Non l'inverse

Default avatar.png spectrosdennoce: j'ai dit que ce qui avais des concept equivalent tu les utilise et le reste tu le cherche

Bob: oui et ce qu'on dit c'est que des fois il n'y en a pas

Default avatar.png spectrosdennoce: vous savez pas lire ?

Bob: si

Default avatar.png spectrosdennoce: je l'ai marquer quand y a pas tu cherche

Bob: oui

Bob: mais du coup c'est pas "juste" appliquer de la logique de developpement

Bob: parfois ca necessite de reflechir le probleme d'une maniere completement differente

BlaiseEbuth: Ta réflexion de base c'était qu'on pouvait passer comme on voulait entre tous les langages. Et donc non

Default avatar.png spectrosdennoce: ba y a la logique de recherche qui est equivalente

philRG: mon frère depuis s'est mis à Swift, donc je peux plus lui poser de questions :-D

Bob: tu ne resous pas un probleme en fonctionnel pur de la meme maniere qu'en imperatif

Bob: si tu tiens a ta sante mentale en tout cas

philRG: j'ai abandonné mon éducation sur swift

Default avatar.png spectrosdennoce: ba oui mais c'est pour sa que j'ai marquer ce qui etais pas equivalent TU CHERCHE

Bob: oui mais tu as l'air de dire que ce n'est qu'une question de syntaxe

Bob: or c'est loin d'etre le cas

Default avatar.png spectrosdennoce: j'ai pas dit sa

Bob: ok

Bob: si "passer entre les langages" c'est "savoir utiliser Google" alors oui admettons :)

BlaiseEbuth: une fois que on a la logique de developpement tu peut tout coder en vrai

BlaiseEbuth: pas tout coder pardons coder dans un peut tout les language

BlaiseEbuth: fin de citation

Default avatar.png spectrosdennoce: alors faut faire les laison avec le reste

Bob: mais bon je connais des gens qui ont acces a Google, des bons diplomes, de l'experience et qui restent infoutus d'ecrire trois lignes de JS un tant soit peu idiomatique apres deux ans passes dessus

Bob: donc c'est moins trivial que ce qu'on pourrait penser

Default avatar.png spectrosdennoce: la logique de developpement c'est pas juste savoir les synthaxe c'est aussi la logique de recherche

BlaiseEbuth: Idiomatique ça veut dire faire du code idiot automatiquement ? C'est représentatif de l'industrie... :thinking:

Bob: (je veux pas faire mon grammar nazi mais tes fautes d'orthographe me font saigner le nez a travers les yeux, desole fallait que ca sorte)

philRG: quand j'ai commencé à évoquer les théories ensemblistes aux formateurs de l'AFPA sur le TP sur SQL Server, j'ai cru que j'allais me faire tuer

Bob: philRG :D

philRG: parfois faut pas remuer la merde :)

Default avatar.png spectrosdennoce: des gens qui ont acces a Google oui certe mais faut savoir s'en servire

Bob: savoir reflechir en fonctionnel c'est pas juste une question de savoir faire une recherche sur stack overflow

Bob: c'est un processus de pensee

Bob: une structure mentale que tout le monde n'a pas forcement

BlaiseEbuth: Puisqu'on te le dit... Ca sert à rien d'argumenter avec ceux qui sâche, parce que justement... Ils sachent.

Bob: le president du comite departemental d'aikido qui me demande quand auront lieu les examens de grade parce qu'il a des pratiquants qui lui posent la question :see_no_evil:

Bob: y a quand meme de sacres bienheureux dans la nature

Default avatar.png spectrosdennoce: je me base sur MA propre experience d'apprentissage autodidact et cetais quelque chose d'asser trivial les mec qui passe 2 ans dessus cherche juste pas mais survole sans chercher a comprendre

BlaiseEbuth: Tu fais du fonctionnel ?

Default avatar.png spectrosdennoce: oui

BlaiseEbuth: Quoi donc ?

Default avatar.png JBM: du clojure

BlaiseEbuth: Ah, tu le connais ?

Default avatar.png spectrosdennoce: kotlin

Bob: comment es ton parenthese JBM o/

BlaiseEbuth: Kotlin c'est pas forcément fonctionnel mais soit. On va pas y passer la soirée.

Stilgart: philRG: tu t'es fait phisher ta réponse à température, non ?

Default avatar.png JBM: améliore mon anne sylvestre Bob \o

Bob: peut-on dire que C++ est "fonctionnel" parce qu'ils ont mis un reduce dedans ?

BlaiseEbuth: Beh non.

Default avatar.png JBM: ben oui

BlaiseEbuth: Enfin on dit ce qu'on veut ^^

Default avatar.png JBM: pour moi c'est essentiellement depuis qu'ils ont intégré les lambdas

Default avatar.png JBM: mais leurs anciens foncteurs ou je sais plus coment ils les appelaient étaient une ébauche

BlaiseEbuth: Hmm... Est-ce que "être un langage fonctionnel" et "être un langage permettant le fonctionnel' c'est la même chose ?

POLOB: y'a pas une histoire de pureté dans la catégorisation des languages fonctionnels ?

Bob: une fois qu'on aura resolu ce point, on pourra parler de la pertinence pour un langage imperatif de se rajouter des bouts de fonctionnel

philRG: Stilgart: nan je me suis souvenu après du puzzle, je l'avais fait en C# comme à l'AFPA :-D

BlaiseEbuth: J'ai tendance à penser qu'à partir du moment où un langage n'est pas purement fonctionnel, les "petits bouts de fonctionnels" qu'il s'ajoute sont plus des gadgets qu'autre chose.

philRG: je faisais pas de python, et les lambdas je les avais survolées à l'afpa sur les TP JS

philRG: ils l'ont déclinée en code golf aussi tiens

POLOB: d'accord avec toi BlaiseEbuth

POLOB: mais dans ce cas, ça limite beaucoup ceux que tu mets dans ta liste

BlaiseEbuth: Oui.

POLOB: tout ceux sur la JVM permettent de sauter dans le monde JAVA... et là bye bye...

BlaiseEbuth: Et du coup kotlin et c++ n'y sont pas

POLOB: je ne pense pas qu'ils se le prétendent pour le coup...

BlaiseEbuth: Kotlin si, ils se vendent fonctionnel

POLOB: ok, je connais pas bien Kotlin pour le coup

POLOB: mais Clojure aussi, il le vendent comme fonctionnel 'cool car tu peux appeler tout l'éco-système de la JVM'

BlaiseEbuth: Pas plus que ça non plus... Depuis le referee de je sais plus quel multi qui était en kotlin je suis allergique...

BlaiseEbuth: Bah disons que clojure est fonctionnel en lui même, mais ouai tu peux appeler du java.

BlaiseEbuth: Après est-ce que ça veux dire qu'un langage ne peut pas être fonctionnel si il a la possibilité de faire un call system sur un langage non-fonctionnel ? ^^

BlaiseEbuth: Ca va devenir compliqué là...

POLOB: Monad to the rescue !

POLOB: sinon, bin tu peux rien faire, car même lancer le biniou, ça change l'état du système...

Default avatar.png JBM: après c'est pas parce que c'est devenu un langage fonctionnel que c'en est devenu un bon

Zorg1: c'est devenu fonctionnel le Java ? on ne me dit jamais rien moi :(

POLOB: autant que le C++ :)

philRG: Stilgart: ah oui j'ai filé la soluce mais pas le if additionnel (par exemple, si les températures sont -5 et 5, alors afficher 5).

philRG: je me suis fait phisher la soluce sans faire gaffe

philRG: en C# il y a possibilité de faire de lambda expressions, mais il faut LINQ

Zorg1: bah go tu peux faire des lambdas, enfin des fonctions anonymes avec closure et tout le tremblement

Zorg1: mais je dirais pas que c'est un langage fonctionnel ^^

philRG: tiens je passe pas le validator 2 en python sur températures

philRG: mais je passe en C# (code de 1400 caractères) et 141 python

Stilgart: philRG: on va dire que c'est le métier qui rentre ;)

Stilgart: et puis bon, c'est pas comme si un certain [CG]Thibaud filait les validateurs en douce sur le forum

Stilgart: :sifflote:

BlaiseEbuth: En douce ?

philRG: en fait je capte pas

Stilgart: comprendre que je l'avais pas vu :p

Stilgart: mais heureusement, j'ai des amis vigilants :)

philRG: c le même validateur pour tous les langages rq

philRG: ?

Stilgart: le validateur 2 c'est pas celui avec une réponse à 3 chiffres ?

philRG: c celui à la soumission

philRG: ah donc c un problème d'optimisation?

Stilgart: ?

Stilgart: je sais qu'en golf, j'avais essayé de gruger en me disant que max=99 et ça passe pas

philRG: j'ai pas accès au validateur 2 de la soumission

Stilgart: après, je sais plus si c'est le validateur 2 vraiment hein

Stilgart: (mais c'est suffisamment crédible pour que je t'en fasse part)

philRG: ah ok j'avais utilisé les Exceptions en C# je comprends le problème

Stilgart: tu as fait ton Boulet (seul dwarfie peut la comprendre celle là)

Stilgart: Boulet c'est un collègue qui code en foutant des exceptions partout et à la fin, c'est 10 fois trop long et ça marche pas

Stilgart: (et son nom sur CG c'est vraiment Boulet)

philRG: ah ok ben je me demandais pourquoi j'avais codé des exceptions, et relisant mon code C# de 1400 caractère, je comprends pourquoi :-)

philRG: j'arrive même pô à me relire :sob:

philRG: et pas pris le temps de relire le format d'entrée, mais les validateurs me paraissent zarbi vu ce qui est écrit dans l'énoncé...

Zorg1: 1400 chars en C# ça fait gros, même en enlevant tout le "boiler plate"

Stilgart: facilement 10x trop

philRG: oui mais c mon premier puzzle, et je fais très peu de C#

philRG: les validateurs ne sont pas conformes à ce qui est indiqué dans l'énoncé

BlaiseEbuth: Ah ça y est, il va s'y mettre

Zorg1: faire du fonctionnel en C# ?

BlaiseEbuth: A trouver des bugs dans les puzzles

Zorg1: ah ça ^^

Zorg1: "Y'a quelqu'un ici qui a réussi Onboarding ?"

BlaiseEbuth: :D

Zorg1: je devrais avoir honte de me moquer :(

philRG: faudrait le simplifier l'onboarding

DreamSwitch: :joy:

philRG: je mets parfois des exceptions en python quand j'ai trop de bugs simultanés

philRG: mais je le fais plus

philRG: j'évite de coder 500 lignes en une fois quoique je l'ai déjà fait pour transformer un code python en C++ et ça marchait plutôt bien

philRG: à partir d'un code fonctionnel

philRG: ouf ça y est code golf python température fait en 190 :)

didyme: t'as une température de 190 ? Oo

didyme: bon remarque quand tu fais du python çà peut arriver

philRG: :-D

BlaiseEbuth: Surtout pour le cpu

dwarfie: ca depend ... kelvin , farenheit ou celsius ?

BlaiseEbuth: Bah celsius...

leojean890: philRG 1400 chars en golf c'est trop xD

Bon[]Crayon: AutomatonNN J'ai terminé l'exemple.

AutomatonNN: oh tu a fait un module de puzzle de contest ?

Bon[]Crayon: AutomatonNN oui

AutomatonNN: oui

didyme: et la voiture jaune

Bon[]Crayon: AutomatonNN Es-tu une instance de Oui-Oui ?

AutomatonNN: oui

Stilgart: c'est moi classe que Automaton2000 qui dit qu'il est batman :)

Stilgart: moins*

Automaton2000: je savais pas qu'il y ait un peu de bon sens

dwarfie: Automaton2000 : dis nous que t'es une tortue et peut etre qu'on sera impressionné

Automaton2000: c'est pas toi qui a dit que je ne veux pas que ton code est pas très loin

dwarfie: Automaton2000 : non , j'ai dit que ton code de permettait pas d'envisager un " print("tortue"); "

Automaton2000: je suis pas sorti de la fac

dwarfie: Automaton2000 : et donc ?

Automaton2000: je vois pas où tu veux

Bon[]Crayon: Automaton2000 Et la tortue, la tortue, tu la vois !

Automaton2000: sinon ils vont se faire ban

Bon[]Crayon: Automaton2000 Diantre non, pas pour si peu.

Automaton2000: je peux me permettre de faire des tests unitaires

Bon[]Crayon: Automaton2000 À la bonne heure :)

Automaton2000: comment va ton bot ?

Bon[]Crayon: Automaton2000 Il debug tout seul :)

Automaton2000: ah oui t'as pas le droit de faire de la merde :p

dwarfie: enfin une phrase censée

Zorg1: Automaton2000 tu nous la joue Qualité Du Code ?

Automaton2000: bon, faudrait que je le fasse pas

Stilgart: Automaton2000: s/pas/tortue/

Automaton2000: j'essaie de comprendre ce qu'on me demande de faire une solution en haskell

Stilgart: :)

Zorg1: z'êtes pas cool avec Automaton2000 pour l'obliger à faire du Haskell :(

Automaton2000: oui c'est le seul moyen de faire moins de 1

Stilgart: Automaton2000: clair, avec Haskell, te voilà parti pour atteindre le top0

Automaton2000: parce que dans la plupart des fonctions de la lib standard

Stilgart: Automaton2000: sinon, ce que tu veux faire c'est main = putStrLn "tortue"

Automaton2000: en vrai il y a le moins de lignes de code pour le faire

Stilgart: bien vu :)

Alshock: il apprend, le petit Automaton2000 alors que moi je stagne T_T

Automaton2000: il faut dire que le c++ c'est la merde

BlaiseEbuth: Ouai... Il prends un peu trop sur les mauvaises personnes...

Alshock: bisous à tous ceux qui sont encore debout. C'est vrai partout ça Automaton2000, tu vois moi je suis dans le Cobol, et rien que dans le Cobol c'est un bordel...

Automaton2000: tu peux même pas dire si c'est un bug de mon code...

Stilgart: héhé

Alshock: putaiiiin j'arrive pas à passer le dernier test du binary neural network là ça me rend chèvre !

Stilgart: ?

Stilgart: tu parles du NN1 de player_one ?

Stilgart: ou du NN2 ?

Alshock: mais si tu sais, l'animal blanc et poilu qui fait meeeh

Zorg1: ^^

Alshock: le 1 de player one pardon

Stilgart: normalement, c'est le dernier test du 2 qui pose problème

Alshock: oui, mais moi c'est mon cerveau qui pose problème

Stilgart: par contre, tu fais bien plusieurs passes comme dit dans l'énoncé ?

Alshock: ouais, je suppose que c'est ma gestion des hidden layers qui déconne d'une manière ou d'une autre

Stilgart: (maintenant que j'y pense, quelqu'un a eu un soucis à cause de ça)

Stilgart: hidden c'est du flan

Stilgart: ça marche pareil que output

Stilgart: (sauf s'il n'a pas mis de biais sur l'output mais bon...)

Alshock: certes, mais j'ai les deux méthodes scolaires outputs delta et hidden delta, et quand j'ai deux hidden visiblement ça apprend mal

Stilgart: tu propages bien dans le sens backward ?

Alshock: ou alors c'est juste que mon apprentissage est foiré parce que je me suis perdu dans mes matrices, ça arrive souvent. Bref, je suis mûr pour y repasser 2h

Stilgart: de l'output vers l'input ?

Alshock: oui

Stilgart: j'ai pas utilisé de matrices pour ce puzzle

Stilgart: (j'en ai utilisé pour faire des trucs à coté par contre)

Alshock: tu répèteras pas à Blaise que j'ai utilisé numpy hein, sinon il va râler

Stilgart: hum

Zorg1: bah pour utiliser numpy faut utiliser python déjà ...

Stilgart: je craignais ça

Stilgart: tu es conscient que ça va pas faire le calcul qui est demandé ?

Alshock: le calcul demandé ?

Alshock: Zorg1 c'était le sens du propos

Stilgart: bah, le soucis c'est que ton réseau il n'a pas convergé

Alshock: yep

Stilgart: et si tu utilises numpy, je ne garantis pas que ce con ne va pas essayer d'optimiser les calculs et donc donner un résultat flottant différent

Stilgart: et donc un réseau qui fait autre chose que ce qui est "prévu"

BlaiseEbuth: Qu'est-ce que tu dis à propos de numpy Alshock ?

Stilgart: BlaiseEbuth: il apprenait à 2000 que numpy c'est de la merde ;)

BlaiseEbuth: Oh ! Ca va alors... :3

Stilgart: Alshock: ta sortie est très différente de ce qui est attendu ?

Stilgart: tu as les coefs de ton réseau pour que je compare aux miens ?

Alshock: attah je vire mes outputs stderr et je te dis ça

Stilgart: http://chat.codingame.com/pastebin/b46dffe2-2014-44e1-81f4-69076ca8edd6

Alshock: Je penche quand meme plus sur l'erreur de ma part, j'ai encore du cambouis sur les mains

Stilgart: ça ne devrait pas passer le reste si tu avais fait une grosse bêtise

Alshock: tiens, je timeout maintenant ?

Alshock: ah non c'est bon

BlaiseEbuth: En vrai j'ai utilisé numpy une fois...

Stilgart: et c'était dans la phrase "numpy c'est de la merde" ?

Alshock: Weights: [array([[ 0.9374981 , -3.01931104], http://chat.codingame.com/pastebin/16fb35b0-efdd-4723-bb8d-00869ad341c2

BlaiseEbuth: Oui ça sans doute plus d'une fois... Mais je parlais de vraiment l'utiliser dans du code...

Stilgart: (alors que bon, numpy c'est quand même le truc qui apporte de vrais tableaux à python... donc c'est pas sympa de cracher dessus)

Zorg1: bah numpy c'est pas adapté si tu fais de la matrice/vecteur en masse ?

Alshock: si c'est son concept de base

Alshock: il te dit "attends fais plutôt ça en C, tiens voilà ma lib"

Stilgart: Alshock: je ne sais pas lire ton tableau, mais c'est très différent de mes coefs

Stilgart: tu as quoi sur le test 1 ?

Alshock: weights[input, output]

Alshock: j'ai bien l'impression qu'il converge pas trop

BlaiseEbuth: C'était pour le poulailler de nicola je crois...

Alshock: Weights: [array([[ 0.78201481],

      [-0.012726  ]])]

Stilgart: BlaiseEbuth: hahaha.... je vois :D

Stilgart: là on a la même chose

Stilgart: et sur le test 7 ?

BlaiseEbuth: Tu lui fais manger la matrice de l'équation et hop !

Alshock: Weights: [array([[ 2.79832558],

      [-1.1247835 ]]), array([[ 2.9565196 ],
      [-1.48263827]])]

Stilgart: ((Input 1,Hidden 1 1),2.814156806375603) ((Hidden 1 1,Output 1),2.9804911338512543) ((Bias,Hidden 1 1),-1.1703109338308317) ((Bias,Output 1),-1.4753584013263166)

Stilgart: là on diverge déjà pas mal

Alshock: ah ouais en plus j'ai une liste d'arrays parce que je voulais pas faire une matrice difforme c'est vraiment crade comme output

Stilgart: 2% c'est beaucoup d'erreur, vu la quantité assez faible de calcul

Alshock: yep, surtout on semble diverger trop pour que ce soit une accumulation d'arrondis non ?

Stilgart: environ 10^9 fois trop

Alshock: ya que 500 tests de training

Stilgart: ça peut pas être numpy du coup

Stilgart: (ou alors ils savent pas coder un produit de matrices)

Alshock: en même temps je m'en doutais que ce serait ma faute

Alshock: je veux pas me débiner j'ai merdoyé salement xD

BlaiseEbuth: Pléonasme...

Zorg1: rajoute quelques matrice, multiplie tout ça ensemble et hop

Stilgart: BlaiseEbuth: genre on ne peut pas merdoyer avec élégance selon toi ?

Stilgart: pourtant, AutomatonNN il semble assez bon à ce jeu

AutomatonNN: oui j'ai pas le temps de te contenter de tout je suis en train de faire un CC et j'ai pas compris le

Zorg1: t'es en train de faire un court circuit AutomatonNN ?

BlaiseEbuth: La merde c'est sale m'voyez.

Stilgart: la preuve, il fait un CC alors que CG n'en veut plus :p

AutomatonNN: oui

Zorg1: fais gaffe tu vas perdre une neuronne

Alshock: Est-ce que ça c'est un motif d'aller simple vers les tournebroches de Blaise ?

       weights += -LEARNING_RATE * np.outer(biased_outputs, delta)

(weight les poids de I à J, les outputs de I et le delta de J)

Alshock: ouais j'en suis réduit à ce stade où je prends les parties les plus "ça a pas l'air de buguer" de mon code et je lance des introspections sur le sens de la vie dessus

Stilgart: ça semble pas déconnant

Stilgart: pour le +=

Stilgart: par contre, pour le delta, j'ai pas la même formule pour les Hidden

Alshock: ouais surtout j'ai remplacé par de l'itératif et j'ai toujours le même décalage

Stilgart: tu peux sortir le premier delta du test 7 ?

Alshock: le premier dans quel sens ?

Stilgart: celui du 1er train

Stilgart: [(Hidden 1 1,1.1343401846417621e-2),(Output 1,0.14814393784953103)]

Alshock: outputs delta = [0.66871647] * [0.33128353] * [0.66871647] = [0.14814394] hidden delta = [0.5438226] * [0.4561774] * [0.03975732] = [0.00986298]

Alshock: ah j'ai laissé le calcul intermédiaire dans l'output

Stilgart: j'ai pas du tout pareil sur le hidden

**Alshock retourne vite fait sur son calcul de delta. Se rend compte qu'il ne se comprend même pas lui-même.

Stilgart: ton "d" semble faux

Stilgart: oj*(1-oj)*d --> je suis d'accord sur oj (0.5438...)

Stilgart: si ça se trouve, c'est le init qui est faux en fait :D

Stilgart: http://chat.codingame.com/pastebin/0d13ca94-4a5c-4708-933d-a71da2d55303

Alshock: Attends, t'es sûr de l'ordre ?

Stilgart: bah, je fais 100% :)

Alshock: >-<

Stilgart: note que l'ordre d'affichage est arbitraire

Stilgart: (enfin, c'est le Ord automatique de Haskell qui le détermine)

Alshock: ouf ça va, mon init était transposé mais c'est quand même mon vieux dot product qui est foireux

Alshock: je vais refaire ça à la main ça me fera du bien, et je reviendrai crier victoire ou famine ici

Stilgart: hidden delta = [0.5438226] * [0.4561774] * [0.03975732] = [0.00986298]

Stilgart: pour moi, c'est le 0.03975 qui est louche

Alshock: oui, c'est bien lui

Stilgart: j'aurais 4.572485103517228e-2 ici

Alshock: tkt que quand Stilgart me dit un truc comme ça pas besoin de le répéter ça tombe pas dans l'oreille d'un sourd

Alshock: enfin, si, mais qu'importe !

Stilgart: question con... tu utilises bien delta pour calculer delta ?

Stilgart: dis autrement, tu es bien sûr que tu backpropages le delta de la couche output à la couche hidden ?

Alshock: oui, pardon du vent, c'est le calcul lui-même que j'avais voulu "matrixer" et en fait c'est lui qui m'a matrixé

Stilgart: c'est pas matrixable facilement ça

Alshock: bah ça ressemblait à un dot tordu

Stilgart: mon intuition me dit qu'on doit pouvoir jouer avec des formes de Krylov :D

Alshock: (╯°□°)╯︵ ┻━┻

Stilgart: ou alors, tu mets une matrice par couche

Alshock: quoi ? Comment ça la commande /unflip n'existe pas ? AUTOMATON2000 J'exige des explications !

Automaton2000: tu ne fais pas de la triche

BlaiseEbuth: Oui les couches c'est pour une seule personne

Alshock: ça dépend, si les personnes font moins de 3kg ensemble ça passe

Stilgart: AutomatonNN: tu as combien de couches toi ?

AutomatonNN: oui

Stilgart: il n'a vraiment qu'un seul neurone, ma parole :)

Zorg1: ou alors il les économise #astuce

Stilgart: sur ce, ododo

Stilgart: bonne nuit à tous, bonne tortue à Automaton2000 et bonne licorne économe à AutomatonNN

Automaton2000: en vrai ça peut être un peu long

AutomatonNN: donner le contest de contest pourquoi je suis pas sur que tu peux pas voir ce que tu as pas trouvé d

BlaiseEbuth: o/

Zorg1: \o

leojean890: easy de perdre 1.7k CP : resubmit au moment du calcul des CP :P