Chat:Fr/2021-06-15

From CG community
Revision as of 05:29, 16 June 2021 by Chat Log (talk | contribs) (Created page with "File:Default_avatar.png Peachy0101001: je ne suis pas en mesure de répondre à cette question <img src=/a/59827729346819> Hunter64TheOne: c quoi PMs <img src=/a/4315200...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Default avatar.png Peachy0101001: je ne suis pas en mesure de répondre à cette question

Hunter64TheOne: c quoi PMs

philRG: ah pardon j'ai cliqué sur le PM du puzzle sans m'en rendre compte...

philRG: https://www.codingame.com/forum/t/code-vs-zombies-feedback-strategies/1089/37

philRG: les stratégies publiées à la fin du contest par les participants (ie Post Mortem)

Hunter64TheOne: tank you!

Hunter64TheOne: il est ou jdeveil

Hunter64TheOne: il... nous... a... aban...donner!

Hunter64TheOne: ouinnnnn

Hunter64TheOne: :cry:

Hunter64TheOne: sucseptible

Hunter64TheOne: tu t'en f...?

jdeveil: bon je file... ++

Hunter64TheOne: nonnnnnnnnnnn

Hunter64TheOne: pitié

Hunter64TheOne: :sob:

Hunter64TheOne: :cry:

philRG: http://chat.codingame.com/pastebin/10b531a4-5d4a-423d-b310-a02b8dd27548

Hunter64TheOne: ton truc n'est pas securiser

GroutchKeu: "La sécurité c'est surfait"

Alshock: coucou bisous

Alshock: câlin Automaton2000

Automaton2000: j'ai fait ça au début de la partie

Nanyfr: je suis sur le truc de thor, comment on fait pour demander sur python à qqn de se déplacer ?

Default avatar.png khealer: Tu devrais apprendre les bases de la programmation avant de vouloir résoudre des puzzles

jdeveil: bonjour Nanyfr, comme sur tous les jeux codingame: les paramètres d'entrées se récupèrent sur stdin (l'entrée standard) et les paramètres de sorties (donc les mouvements aussi) sur la sortie standard - stderr

Default avatar.png JBM: “Your friend has accepted your invitation to join CodinGame”

Default avatar.png JBM: j'adore cette notif

Default avatar.png JBM: genre aucune idée de qui c'est, je me souviens pas avoir spammé de lien depuis des mois

philRG: c pas moi

leojean890: hop you unlocked an achievement

Default avatar.png JBM: je crois pas encore

Default avatar.png JBM: je sais pas a cb j'en suis

leojean890: 10 xp ou un truc du genre pour avoir invité qqn

philRG: moi récemment, j'ai unlocké un achievment "Vous avez quelque chose à dire", mais seulement 10 XP, c'est abusé...

Default avatar.png JBM: ouais enfin t'avais quoi a dire?

Default avatar.png JBM: "kikoolol"?

philRG: ben rien :-D

philRG: ou je m'en souviens plus tellement je raconte de trucs lol

dbdr: avis à la population: j'ai nettoyé le wiki si vous voulez un compte, maintenant faut me demander :)

Default avatar.png JBM: trop compliqué

dbdr: :P

Default avatar.png JBM: ça avait spammé?

dbdr: 1/2 million de pages, a peu pres autant d'utilisateurs

Default avatar.png JBM: du contenu! enfin!

Default avatar.png JBM: ça change dse pages de comment es ton csb dans les logs de #ru

dbdr: 8GB pour la db sqlite

Default avatar.png JBM: mediawiki tourne sur sqlite?

Default avatar.png JBM: cool

Default avatar.png JBM: je savais pas

dbdr: ouaip

Default avatar.png JBM: ça doit être «récent»

dbdr: 200MB apres nettoyage

dbdr: j'ai remis tous les logs du chat

dbdr: JBM: sqlite production quality depuis December 2010

dbdr: donc oui c'est "récent" ;)

Default avatar.png JBM: yep

philRG: suivi une formation OC sur Spring boot, mais ces conneries de cours OC se basent sur des versions spéficifiques de frameworks, ça devient chiant leurs cours

philRG: spécifiques

philRG: dbdr: j'ai perdu le lien

philRG: ah c'est çà? https://cg.spdns.eu/wiki/Main_Page

philRG: lol: https://imgur.com/a/i8IGoSA

jdeveil: ah ben tu peux enlever le lien vers les "Salles de CoC"... 404

BlaiseEbuth: Bwa faut juste les remettre, je les ai toujours

jdeveil: hmm au boulot alors :)

jdeveil: :D

BlaiseEbuth: Bah j'ai pas de compte du coup

jdeveil: ...

BlaiseEbuth: dbdr je peux avoir un compte !

jdeveil: non il faut le lui demander gentillement :)

dbdr: donc c'est mort pour Blaise ;)

jdeveil: :D

Alshock: dbdr espèce de sale ordure! Killeur de process fonctionnels ! Enfant du démon tu vas me donner un compte ! S'il te plaît ! Demandé gentiment comme ça je ne vois pas qui pourrait resister ! :P

Alshock: Au passage reuh, on parle de quoi ?

BlaiseEbuth: Oui

NomNick: c'est moi ou l'onglet discussions des combats de bots ne se chargent plus ?

NomNick: (coucou)

RedLinesNT: :nerd:

NomNick: https://www.codingame.com/multiplayer/bot-programming/fantastic-bits/discuss

NomNick: ni mon firefox ni mon chrome ouvre çe lien, vous pouvez tester aussi s'il vous plaît ?

dbdr: Loading...

[CG]Thibaud: le forum est down, on essaye de réparer ce que la dernière update a cassé

[CG]Thibaud: NomNick (l'onglet discussions, c'est le forum)

NomNick: ok merci, je me demandais juste si c'était mes configs locale

NomNick: bon courage

dbdr: les leaderboards ont l'air en rade aussi

NomNick: go fast & wreck everything amirite

dbdr: https://www.codingame.com/multiplayer/bot-programming/dice-duel/leaderboard

dbdr: je suis à 51% alors que le run est fini depuis longtemps

Rafdune: Je n'arrive plus à rejoindre des clash

darkhorse64: CG a un peu chaud en ce moment

[CG]Thibaud: Radfune c'est quoi le souci exactement ? J'ai réussi à rejoindre un clash

nicola: Gateway truc pour une soumission de puzzle.

nicola: [CG]Thibaud

nicola: La soumission d’un puzzle ne passe pas.

nicola: Ça coince après la validation de tous les tests+validateurs.

nicola: 504

nicola: Gateway timeout

Default avatar.png 154906: nnnnnnnnnnnn

Rafdune: C'est revenu

Rafdune: Combien de point gagne-on par clash ?

Rafdune: pour savoir il me faudra combien de clash pour etre dans les 1000premiers

tenukiUser: c'est écrit dans les explication sur les codinpoints si tu clique sur le point d'interogation au niveau de t'on rang dans t'on profile

Default avatar.png SubKio: pk les énoncé sont autant claqué au sol ?

Alshock: tu sais ce qu'on dit, si toutes les lames sont émoussées c'est que la main a parkinson

BlaiseEbuth: Quels énoncés ?

BlaiseEbuth: Le forum est revenu. Plus bugué qu'avant...

Default avatar.png SubKio: les énoncé des clashs

BlaiseEbuth: SubKio: Bah c'est un cercle vicieux. CG a bien fait comprendre à tout le monde que les attentes de qualité sur les clashs devaient être revues à la baisse. Donc il y'a eu de plus en plus de m***e. Et à force de voir toute cette m***e validée, tout les gens sérieux se sont désintéressé de la modération des clashs. Et donc y'a plus aucun filtre et c'est le caca.

Remi_avec_un_i: Bonsoir tout le monde

BlaiseEbuth: Bonsoir tout seul

Remi_avec_un_i: Ce soir j'ai du temps pour coder, madame regarde le foot ^^

BlaiseEbuth: Quelle idée...

SchizoBoy: c'est pas faux parfois je vois des énoncés qui ont du potentiel mais qui sont super flou... parfois des énoncés très clairs mais beaucoup trop simple c'est un peu nawak

Rafdune: Les gens qui dev en python sont trop rapide et le code est plus cours

Rafdune: il faudrait que je change de langage pour try hard cg

Zorg1: après quel intérêt ?

Remi_avec_un_i: Pour le code le plus court il faudrait coder en ruby, pour le plus rapide il faudrait les faire en python ... mais le but est quand même de s'exercer dans les langages qui nous servent.

leojean890: ça peut le faire en js ou en ruby pour le code concis/rapide à produire

leojean890: "le plus rapide à produire" ça dépend de ton aisance avec chaque langage

Rafdune: faux pour 'le plus rapide a produire', le plus rapide sera forcement le plus court ;)

Remi_avec_un_i: Sauf s'il faut du temps pour réfléchir pour raccourcir en plus le code, en mode golf.

leojean890: le plus rapide n'est pas forcément le plus court en taille de code non :P

leojean890: https://www.codingame.com/ide/puzzle/don't-panic-episode-2 tjr en galère là dessus xD

leojean890: 70% en heuristique, 70% en a* car timeout 60% en bfs simple

leojean890: va falloir pondre de l'heuristique

BlaiseEbuth: T'façon les clashs on s'en fout.

Remi_avec_un_i: Le plus rapide c'est celui dans lequel on est le plus à l'aise, mais ça dépend aussi des fonction proposées par le langage. Perso j'utilise le C++, j'ai à peine le temps d'écrire le début d'une boucle for que le python a déjà écrit sa solution en 1 seule ligne de code en 31 secondes.

Remi_avec_un_i: On s'en fout oui et non, si on eut remplir les missions sur son profil, il faut bien faire du clash aussi.

Remi_avec_un_i: * si on veut

leojean890: exact celui dans lequel on est le plus à l'aise mais pourtant certains langages proposent plus de fcts haut niveau que d'autres pour aller plus vite ouais

Remi_avec_un_i: Je prends toujours cet exemple là : https://www.codingame.com/clashofcode/clash/report/180175990baf661f7e424a96b195237c7a203fc

Remi_avec_un_i: je peux pas lutter ^^

leojean890: bah après ça dépend, chacun ses critères, mais ouais les clashs c'est pas de la grosse compet, car les gens finissent par lacher et le ELO baisse ensuite tout seul

Zorg1: ouaip tu complètes tes missions et puis tu passes à autre chose ^^

leojean890: bcp plus de compet en multi/optim^^

SchizoBoy: same j'ai tryhard le coc pour finir le parcours mais je compte pas m'y remettre... en plus avoir plus de 5 min pour réfléchir ca fais du bien

leojean890: surtout les sujets de contests récents où il y avait plus de gens avec du niveau

leojean890: y'en a qui tryhard le succès des 500 coc mais faut être courageux

BlaiseEbuth: :triumph:

SchizoBoy: déjà 146 et j'ai l'impression d'y avoir passé ma vie

Remi_avec_un_i: Moi j'ai passé les 50, là il faudrait que j'en gagne 3 en mode à l'envers ... mais contre les pythons c'est impossible ^^ je laisse un peu les CoC de côté.

leojean890: je pense pas que bcp en fassent 500

SchizoBoy: déjà avoir terminé dans les 1000 ca me suffit j'y touche plus mdr

leojean890: quelques motivés par ci par là

leojean890: de tte façon ça redescend tout seul :P

leojean890: je suis monté #300 une fois et c'est redescendu #4000 ^^

leojean890: (en vrai ça rapporte pas bcp plus de CP d'être #300 par rapport à #4000)

Remi_avec_un_i: Moi je suis dans les 3493ème, mais ça suffit à avoir 4468CP/5000, donc je ne cherche pas forcément à m'améliorer sur les CoC.

leojean890: voilà :P après pour qqn qui adore les COC ça peut être un challenge d'être dans les top 100

Remi_avec_un_i: Si le seul intérêt est "d'impressionner les recruteurs dans les entretiens techniques", c'est pas très utile (j'ai passé pas mal d'entretiens, jamais on m'a demandé de coder un truc en direct).

BlaiseEbuth: C'est surtout que si tu montres ce que tu fais en clash à un recruteur, t'es viré direct.

Remi_avec_un_i: lol

leojean890: j'avoue, si t'as un truc à faire en temps limité, faut coder plus "propre" que ce que tu pourrais faire sur CG pour gagner^^

Zorg1: j'imagine le gars en entretien "je suis contributeur vedette des CoCs CG" :D

leojean890: "j'ai créé 2k clashs"

Stilgart: Automaton2000: calme leojean890

Automaton2000: par contre j'ai pas compris la question

Stilgart: Zorg1: on a bien pire... ctois-moi

Stilgart: crois*

leojean890: Stilgart je sais pas si t'as galéré sur don't-panic-episode-2 mais moi oui hehe

Zorg1: :p:p:p

BlaiseEbuth: Du genre Stilgart ? :p

leojean890: t'as bien pire comme candidats que le créateur compulsif de coc ?^^

Remi_avec_un_i: Stilgart, maintenant que tu nous as mis l'eau à la bouche, il faut nous raconter ^^

Remi_avec_un_i: Même Automaton2000 veut savoir.

Automaton2000: je t'avais dit que tu es devant le boss ...

Zorg1: Automaton2000 tu en es où dans ton IA ?

Automaton2000: tiens j'ai un bug dans mon code ...

Zorg1: moi j'avais déjà bossé avec un gars qui avait choppé le melon parcequ'il avait bossé dans le jeu vidéo

Zorg1: le pire c'est qu'il était vraiment pas terrible pour coder en C

jfaixo: xD

jfaixo: j'ai fait mon stage de 2eme année dans une boite de jeu vidéo

jfaixo: le main dev, il avait codé une fonction pour calculer la distance d'un point a une droite

jfaixo: il faisait des ray tracing récursif en se rapprochant...

Zorg1: ah oui ^^

Zorg1: efficacité

jfaixo: ca donne le lvl

darkhorse64: sur CG, il sort pas de la ligue Bois

Remi_avec_un_i: J'ai connu un gars aussi qui aimait les solutions compliquées juste parce que ça en jette.

Zorg1: darkhorse64 : oui la ligue bois suffit de faire WAIT c'est bien connu :p

Remi_avec_un_i: Il avait fait toute une machine à états juste pour 2 états.

jfaixo: et sur un jeu qu'ils devaient absolument sortir, plutot que de corriger le moteur physique qui merdait et te faisait tomber sous la map, ils faisaient bosser l'armée de designers pour mettre des "patchs" (des polygones quoi) partout où l'équipe de testeurs polonais leur disaient qu'ils étaient tombés

jfaixo: bref, a te dégouter en 3 mois de bosser dans le jeu vidéod ;)

Zorg1: ah d'accord le terrain était troué ils mettaient des rustines ^^

jfaixo: exactement, a te tirer une balle

jfaixo: c'était un jeu de cheval célèbre dont je tairais le nom, mais la map était grande en +

Remi_avec_un_i: Le problème du jeu vidéo c'est que la concurrence est rude, la date de sortie du jeu est souvent plus importante que la qualité.

Zorg1: après bon à l'expérience c'est pê la méthode plus efficace pour tenir les délais

Zorg1: et surtout au niveau management t'as un indicateur de progression

Zorg1: chose que t'as pas quand t'as des gars qui cherchent le bug

Remi_avec_un_i: jfaixo je teconseille de bosser dans la défense si tu préfères le contraire.

darkhorse64: mouais

jfaixo: haha tkt, ca va ;) et oui ils tiennent les deadlines

Zorg1: après je vois ça comme un effet pervers de la culture du tableau de bord

Zorg1: un gars qui cherche un bug t'as aucune garantie de combien de temps ça va prendre, et en général sur un bug velu t'as intérêt d'y mettre un bon, que t'as pas forcément sous la main

leojean890: debug de grosses applis ça peut rapidement être horrible :p

Zorg1: voire impossible quand c'est lardé de code historique que plus personne ne maîtrise

leojean890: ouais..

leojean890: quand c'est un bug de calcul de champs (finance) mais que tu n'y connais rien en finance par ex :P

Zorg1: bah quand tu vois la gueule de leur règle de gestion en finance ...

Zorg1: deux cas autoroute et trois cents cas particuliers

leojean890: alors nous rencontrons un souci dans le splitter de swap de perf lorsque nous chargeons ce portefeuille à une date passée précise mais pas aux autres, corrigez

Zorg1: voilà ^^

Zorg1: tu vas voir un BA qui va voir un PO, vont ensuite voir d'autres POs, font quelques réunions et s'apperçoivent qu'ils pètent la moitié de l'appli

jfaixo: et oui, petit studio, t'as 4 dev pour 30 designers, le calcul est vite fait, tu patch

jfaixo: tout ca pour dire que tout est pas joli joli dans les jeux vidéos non plus ;)

Zorg1: ah oui 30 designers

leojean890: ah oui c'est carrément un choix de team quoi^^

Zorg1: après c'est pê plus cher un dév qu'un designer va savoir

Zorg1: et tu dois avoir des tonnes de stagiaires dans les designers

leojean890: y'a plus de gens en recherche parmi les designers car moins de jobs aussi

jfaixo: oui, et en pratique sur des jeux moyens de gamme t'as pas besoin d'un gros moteur ou d'effets super chiadés, t'as besoin de jolies textures, et ca déroule

jfaixo: les AAA avec des teams de la mort ca doit etre complètement différent, ca optimise à tous les niveaux etc, mais c'est une minorité de jeux

dwarfie: free xp done ... mais la c'etait vraiment free ... plus un clash qu'un puzzle en fait ... déprimant

dwarfie: Automaton2000 ... a ce niveau la , tu peut sacrifier une licorne , ca risqsue plus rien ...

Automaton2000: freexxx : c'est bon j'ai trouvé

dwarfie: Automaton2000 !!! c'est free xp je viens de te dire

Automaton2000: je sais pas, je trouve que c'est un truc de fou

pardouin: il t'en faut peu Automaton2000

Automaton2000: quand tu vois que tu as plus de 50% contre le boss mais pas contre les autres

Remi_avec_un_i: Bon, je crois que ça ne va pas être possible d'atteindre une ligue argent en échappant aux algos que j'ai esquivé jusqu'à présent ...

philRG: bon mes pacs se rentrent plus dedans, reste plus qu'à gérer les changements de type

philRG: https://www.codingame.com/share-replay/564013182

philRG: j'ai suivi ce tutoriel: https://delvingintotech.wordpress.com/2020/06/23/ai-game-coding-multi-agent-pacman-part-1/

philRG: mais mis alpha à 0, car sinon ça merde

philRG: Top 100 en Bronze avec le SPEED uniquement

3141948: http://chat.codingame.com/pastebin/65082830-bcef-4f7c-9595-ba25750b8eff

3141948: Jfaixo : là c grave

Default avatar.png Elody18: Salut ! je suis trop curieuse d'apprendre à faire des algorithmes sur js et je commence à étudier l'algèbre de boole pour commencer mais si vous avez d'autre conseil je prend !

Default avatar.png BoCode: hi

dwarfie: free xp 2 done ... on se demande ce que ca fait en hard : https://www.codingame.com/ide/puzzle/maximising-integers ...

SefioR13: Bonsoir j'ai une question quand on veut ajouter un élément dans un liste en python est-ce que c'est plus rapide de faire .append() que += [] ou c'est pareil

Alshock: SefioR13 normalement ça devrait être plus rapide de faire append, mais surtout ça fait pas la même chose

BlaiseEbuth: Aucune des deux ne sera rapide t'façon, c'est du python.

Alshock: Dans le premier cas tu as une liste X de nom A dans et tu l'agrandis d'une case

Alshock: Dans le deuxième cas tu as une liste X de nom A, et tu crées une nouvelles liste X' qui contient les élements de cette liste X suivis de ceux de la liste Y que tu y ajoutes. Et tu donnes le nom A à la liste X'

Alshock: c'était ptêtre trop tordu sans le schéma, en gros dans le cas 1 tu agrandis la liste, dans le cas 2 tu crées une nouvelle liste

BlaiseEbuth: J'ai pas compris ton histoire de nom...

jfaixo: mais d'où sort la variable A :o

Alshock: C'est ça de pas pouvori faire des petits dessins, en informatique tout repose sur les petits dessins

BlaiseEbuth: Ah X c'était la liste en elle même, pas la variable...

BlaiseEbuth: T'aurais du faire le "en gros" direct

Alshock: Ouais, d'où le fait que le dessin sauverait l'explication

jfaixo: et du coup à la question initiale "qu'est ce qui est plus rapide ?"

Alshock: jfaixo ça c'est mon premier message

BlaiseEbuth: Bah append

Alshock: "normalement ça devrait être plus rapide de faire append, mais surtout ça fait pas la même chose"

jfaixo: c'est plus rapide de append (ie potentiellement agrandir une zone mémoire), ou de réallouer la totale en python ?

jfaixo: ha yes

jfaixo: comme ca je file me coucher en ayant appris quelque chose, merci tu as sauvé ma journée !

Alshock: Nan

Alshock: J'ai giga menti

Alshock: a += ['x'] n'est pas équivalent à a = a + ['x']

Alshock: en fait ça a l'air d'être un append caché

Alshock: http://chat.codingame.com/pastebin/70407c43-ffce-4508-b233-1a1b03301ce8

jfaixo: haha

BlaiseEbuth: Ouai... Python c'est pourri.

Alshock: comme ca je file me coucher en ayant appris quelque chose, merci tu as sauvé ma journée !

jfaixo: j'aime pas Perl a cause de ca, trop de magie dans la syntaxe

BlaiseEbuth: Wut

jfaixo: j'ajoute python a la liste xD

jfaixo: (mais bon, quand tu veux faire du pytorch, tu passes a la casserole, quasi pas le choix...)

BlaiseEbuth: Perl y'a pas de magie dans la syntaxe, c'est plutôt clair. (A condition d'avoir pris la peine d'apprendre et de pas faire n'imp)

jfaixo: par "magie" je voulais dire => ya 50 facons différentes /détournées de faire la meme chose

BlaiseEbuth: Ah.

BlaiseEbuth: Bah c'est le principe.

BlaiseEbuth: "There's more than one way to do it"

jfaixo: haha oui..

BlaiseEbuth: Par contre python il est sensé n'y avoir qu'une seule façon de faire.

BlaiseEbuth: Preuve supplémentaire que c'est mauvais, il respecte pas son propre manifesto.

jfaixo: xD

jfaixo: les surcharges d'opérateur j'imagine que ca reste un espace de fantaisie ;) sur ce, je file !

leojean890: je confirme, en python, on fait a=[1];fct(a+[2])#[1,2] est envoyé en param

Arthuchaut: Euh... J'ai peut-être mal lut mais a += [n] <==> a.append(n), non ? (i.e:

leojean890: ouais

Arthuchaut: (Le Enter sauvage) OK my bad @Alshock avait raison :) En fait le a += [n] <==> a.extend([n]) en terme de consommation mémoire (fusion de 2 listes)

leojean890: ah oui pour la conso mémoire je n'ai pas regardé

Arthuchaut: Tandis que a.append(n) n'ajoute qu'un élément à la liste. Comme l'a dit notre camarade plus haut ^^

Arthuchaut: En fait dans le premier cas on fait une fusion de listes. Dans le second on agrandi la liste originale ^^

leojean890: ouais je vois:)

leojean890: la fusion doit être plus lente, je suppose ? j'ai pas essayé de timer

leojean890: mais moi j'utilise surtout a+[n] quand je veux faire une copie d'une liste en y ajoutant n

Arthuchaut: Bah le résultat est le même dans les 2 cas. C'est la consommation mémoire qui change selon l'opération en réalité :)

leojean890: ouais je sais que pour le résultat c'est pareil^^

leojean890: je parlais en terme de perfs (rapidité)^^

Arthuchaut: Mais perso j'ai toujours utilisé a += [n] car je trouvais ça plus élégant

leojean890: ouais c'est concis

Arthuchaut: (Bien que je vais revoir mes convictions maintenant que j'ai appris ça) :D

Arthuchaut: Celà dit tu ne fait que créer une liste de taille 1... Donc en soit (à moins que ma compréhension de la gestion de la mémoire soit erronée), cela ne changerait rien entre a += [n] et a.append(n) en fait...

Arthuchaut: Puisque dans les 2 cas tu alloues une case à la variable n, non ?

Arthuchaut: (Avant et après l'opération j'entend) ^^

leojean890: ça ne change rien dans le résultat obtenu

leojean890: oui tu alloues 1 case dans les 2 cas

leojean890: c'est peut être l'opération de fusion qui serait un peu plus lente s'il regarde la taille et tout avant de réallouer ^^

Arthuchaut: Yep ! Après est-ce vraiment plus long ? Si le fait N appends, ou une fesion de N éléments, le coût serait le même j'imagine ?

leojean890: il faut timer :P

Arthuchaut: Ok y'a pas photo

leojean890: comme ça on est sûrs:p

Arthuchaut: On a 16.95% de perf en plus sur a.append(n) par rapport à a += [n] ^^

leojean890: pour une seule donnée ? et pour une liste qui en contient plusieurs comparé à plusieurs append ?^^

Arthuchaut: (Pour (10^7^3)*2 itérations)

Arthuchaut: Une seule données (0) sur chacune des 2 méthodes

leojean890: ah ok

Arthuchaut: 1.18s en moyenne sur le a +=[n] et 0.98s pour le a.append(n) ^^

leojean890: en effet, je me disais qu'il y avait un risque pour que ce soit ça^^

leojean890: après j'utilise ça pour ne pas copier

leojean890: return a+[n] par ex

leojean890: ne pas faire b = a.copy()

Arthuchaut: Oula par contre en comparant une fusion de n élément les résultats sont totalement différents ! On a 96,94% de perf en plus pour la fusion (a += [n]) pour une fusion de size(n) = 10^7

Arthuchaut: :O

Arthuchaut: je pense que j'me suis chié sur mes tests

Arthuchaut: Mais j'vois pas l'erreur

leojean890: ah a+= liste de grande taille ?

Arthuchaut: Yep

leojean890: peut être alors, faudrait que je fasse qq tests

leojean890: du coup vs for x in liste:a.append(x)

Arthuchaut: (Please, weat...) ^^

Arthuchaut: wait*

Arthuchaut: Chu bête mais j'ai déjà comparé en fait

Arthuchaut: a.append(n) toujours le même temps

Arthuchaut: 0.98 (+= 20ms)

Arthuchaut: Puisque je ne peux que procéder de la même manière que le test précédent ^^

Arthuchaut: Par contre ton histoire de copie est intéressante

leojean890: du coup une boucle avec des append t'as un temps constant

Arthuchaut: exact

leojean890: alors que a += [plein d'elements] ça varie^^

leojean890: en fct du nbd 'elts

leojean890: nb d'elts

Arthuchaut: j'ai l'impression que a += [n] a une complexité de l'ordre logarithime

Arthuchaut: logarithmique*

leojean890: b = a + [n] ouais c'est une copie tu peux faire ça pour avoir une écriture concise en faisant par ex un bfs

Arthuchaut: (Ou je m'avance trop vite)

Arthuchaut: Oki j'ai encore du mal à comprendre la gestion des variable avec Python, parfois ça passe la référence, parfois ça copie... En fonction de la syntaxe choisie la règle diffère...

Arthuchaut: Genre une matrice M = [[0]*n]*p... Ca sert à rien puisque de M[0] à M[p] c'est en fait la même référence...

leojean890: ah ouais j'avais eu ce souci une fois^^

leojean890: pour un mutable, ça passe la référence, il faut soi-même faire l'action de le copier

leojean890: mutable : dic, list..

leojean890: pour un immutable, ça copie automatiquement

Arthuchaut: Les types "primitifs" en soit ?

leojean890: immutable : string, tuple

Arthuchaut: Ok je retire :D

leojean890: copier une list c'est genre a = b[:]

leojean890: ou a = b.copy()

leojean890: idem, nécessaire pour dic et set par ex

leojean890: alors que str ou tuple ça copie

leojean890: naturellement

Arthuchaut: Oui j'ai trop eu à faire au copy (ou deep_copy dans le cas des tableaux à N dimensions)... Mais c'est un gouffre à mémoire cette connerie :(

Arthuchaut: Oki merci pour l'info :)

Arthuchaut: Va falloir que je revoie mes bases

leojean890: ah oui from copy import deepcopy ça rame

leojean890: quand t'as plusieurs dimensions en effet...

leojean890: tu dois utiliser ça ou autre chose qui le fait bien

leojean890: moi je boucle

leojean890: je crois que BigUP avait trouvé un truc plus rapide que deepcopy je l'avais noté

leojean890: mais je boucle et je reconstruis avec des copy ça va plus vite

leojean890: que deepcopy en tt cas

Arthuchaut: J'ai toujours utilisé deepcopy à la place d'une solution à la mano (partant du principe que c'était forcément plus opti) sans jamais prendre la peine de comparer ^^

Arthuchaut: (Partisan du moindre effort) :D

Arthuchaut: Par contre ce que tu me dit m'intrigue fortement

Arthuchaut: Une solution python plus rapide qu'une lib standard ??

leojean890: ça allait plus vite quand j'ai remplacé par un truc à la main^^

leojean890: et le truc de BigUP était plus rapide mais j'ai oublié ce que c'est

Arthuchaut: Aïe, tu me tease là :D

leojean890: good niht je vais dodo=)

leojean890: night*

Arthuchaut: La bonne nuit à toi l'ami ;)

leojean890: mais ouais si tu veux un peu améliorer les perfs en comparant les temps d'exécution tu peux parfois trouver des trucs^^

Arthuchaut: Merci pour les tuyaux :)

leojean890: après "il faut tester car en fct de la situation ce n'est pas forcément pareil" ^^

Arthuchaut: Certes !

leojean890: "l'optimisation n'est pas une science exacte" ^^