Chat:Fr/2021-06-15
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 ?
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
JBM: “Your friend has accepted your invitation to join CodinGame”
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
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é...
JBM: ouais enfin t'avais quoi a dire?
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 :)
dbdr: :P
dbdr: 1/2 million de pages, a peu pres autant d'utilisateurs
JBM: ça change dse pages de comment es ton csb dans les logs de #ru
dbdr: 8GB pour la db sqlite
JBM: mediawiki tourne sur sqlite?
dbdr: ouaip
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" ;)
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
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
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...
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
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 !
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" ^^