Le 18 janvier 2016 à 13:06:15 Bunyan a écrit :
Est-ce que vous auriez des ressources pour apprendre/revoir les calculs de complexité algorithmique (omega, theta, O) s'il vous plaît ?
Je commence à en avoir ras la casquette de ne pas saisir ces trucs-là x)J'ai fait une recherche, trouvé des trucs, mais vu qu'il y a plusieurs personnes s'y connaissant ici... je me suis dit que vous demander pourrait être une bonne idée =)
les premier chapitres de introduction to algorithms de cormen; leiserson etc
http://citc.ui.ac.ir/zamani/clrs.pdf#44
http://citc.ui.ac.ir/zamani/clrs.pdf#66
Merci =)
Je vais lire/parcourir tout ça (et sans doute me remettre à l'algèbre au passage).
Si y'a d'autres ressources, je ne suis pas contre. Je préfère en avoir trop que pas assez =)
Les deux.
Savoir ce que ça représente, et aussi voir dans quel cas ou pourquoi utiliser ces outils, ainsi que comment les utiliser le cas échéant.
Avoir un début de compréhension me permettra déjà de pouvoir les ressortir pour les jours où j'aurai besoin d'optimiser des algos (ou des fonctionnalités).
Bon... la connaissance algorithmique me manque aussi tout court. À part des algos de tris... je ne me souviens pas vraiment avoir vu quoi que ce soit durant mes cours. Ca me permet de combler un peu ce souci aussi.
C'est plus ou moins ce que je comptais faire une fois avoir compris les bases.
Si je n'ai que la théorie, mais que je ne sais pas à quoi elle sert, ni quand ou comment l'appliquer, ça ne va pas trop trop me servir ^^'
Merci pour les liens =)
Bunyan, cormen est une bonne reference dans le domaine, mais c'est un peu difficile a lire des fois.
Pour mes undergrad, j'utilise le levitin ( http://www.amazon.com/Introduction-Design-Analysis-Algorithms-Edition/dp/0132316811 ) qui est un peu moins pompeux et a plus d'exemple pour chaque technique. Mais c'est certainement moins rigoureux que le Cormen.
Dans les ressources utile, tu as le projet euler ( https://projecteuler.net/ ) qui est assez pratique dans le sens ou il se fout de comment tu as trouve la solution, juste que tu aies la solution. Mais comme les probleme sont difficiles, ca implique que tu aies un bon algo pour le probleme.
Apres, si tu as des questions, n'hesite pas.
Est-ce que c'est problématique de strictement rien comprendre à ces choses là ?
Enfin perso en math j'suis totalement paumé, j'ai genre niveau 1er S pas plus, et en général rien qu'en lisant une ligne je vois au moins deux termes que je comprends pas et la définition de ces terme est encore moins clair que la phrase d'origine que je cherchais à comprendre
LEpigeon-888, ca depend pour quoi. Mais en moyenne, je trouve ca tres genant de ne pas comprendre ces choses la. Pour moi, c'est ce qui fait la difference entre un programmeur et un informaticien.
Surtout c'est important de comprendre ce que O veut dire. Dans la plupart des cas, O compte le nombre d'operation. Mais ce n'est pas forcement la metrique interessante.Les algo cache oblivious comptent souvent le nombre de bloc de memoire transfere. Les algo parallele calcul le speedup theorique. Des algos distribues comptent le nombre/volume de message. Les algo pour map reduce comptent le nombre de passe sur les donnees.
En bref, c'est surtout important de comprendre ce que le big-oh veut dire precisement avant de prendre un algo en regardant seulement une metrique qui peut ne pas etre importante.
Récement j'ai regardé l'épisode de pause process sur les voxels ( https://youtu.be/U-0n383c27E ) mais juste pour être sur de bien comprendre, la CG affiche que des triangles non ? Donc chaque face de chaque cube est convertit en deux triangles avant d'être affiché ? (Avec des optimisation bien sur, genre deux voxels de même couleur collé ensemble auront des face "combiné" pour n'avoir que 2 triangles au lieu de 4), j'ai bon ou ça se passe pas du tout comme ça ?
lokilok, c'est une facon de faire. Et probablement la plus naturelle.
Mais dans un monde compose uniquement de cube aligne avec la grille et qui ne se chevauche jamais, ca ne m'est pas clair qu'une triangulation soit necessaire. Cela dit, je ne connais pas bien ces techniques la. Mais ca ne m'etonnerait pas qu'en pratique d'autres choses soit faites.
il me semble que oui, les cg dessinent au maximum des triangles(sinon point/ligne) donc un carre = 2 triangles un cube = 6 carres = 12 triangles
et chaque triangle a 3 points (vertices)
kaTk, ca c'etait vrai il y a 10 ans. De nos jours je pense qu'un code arbitraire peut pondre un frame buffer.
Typiquement, si tu fais du ray casting, il n'y a pas de raison que les triangles soit mieux que des carres.
au pif:
https://www.researchgate.net/publication/266214830_Beyond_Triangles_A_Simple_Framework_For_Hardware-Accelerated_Non-Triangular_Primitives
Oui 'fin si je vois plusieurs algo j'arrive quand même à comprendre lequel est le plus gourmand en général (si ils sont pas trop compliqué), j'arrive aussi à voir de quels variables ils dépendent ou si ils sont linéaire etc, mais après ça va pas vraiment plus loin que ça quoi
Enfin bon, j'imagine que j'aurais sans doute le temps de voir ça plus tard.
@LEPigeon-888 :
Est-ce que c'est problématique de strictement rien comprendre à ces choses là ?
Honnêtement : non.
Dans ce que j'ai fait depuis que j'ai approché le "monde du travail", je n'ai jamais eu besoin de ça. Une fois une vague notion de complexité pour un site en JEE à améliorer un peu, mais c'est tout.
Pour moi, c'est un plus de culture gé.
Dans mon cas, c'est une volonté personnelle motivée par les échanges des intervenants de ce forum (et d'autres) sur l'algo et les complexité : j'en ai simplement marre de ne pas saisir ce genre de notion. Je ne souhaite pas devenir un expert, mais je souhaite en avoir les bases.
Durant mes cours, j'avais vu uniquement des complexités, mais pas aussi poussé qu'ici (juste le type de complexité). Là, ça me permet de renouer gentiment avec la théorie après pas mal de pratique, ainsi que de renouer avec l'algèbre et l'analyse, que j'appréciais mais sans vraiment y arriver.
Je ne sais absolument pas si ça va me servir un jour, mais je ne raisonne pas du tout comme ça. Plus je sais de choses, plus je suis content, tout bêtement :D
Merci godrik pour les infos en plus, et merci aux intervenants aussi pour le p'tit débat
Bon, j'vais me potasser tout ça entre deux sessions d'AngularJS.
[23:56:05] <godrik>
kaTk, ca c'etait vrai il y a 10 ans. De nos jours je pense qu'un code arbitraire peut pondre un frame buffer.Typiquement, si tu fais du ray casting, il n'y a pas de raison que les triangles soit mieux que des carres.
au pif:
https://www.researchgate.net/publication/266214830_Beyond_Triangles_A_Simple_Framework_For_Hardware-Accelerated_Non-Triangular_Primitives
Ah ok, ouais je vois, merci.
Question sans doute débile, mais j'ai un projet sous github et j'aimerais ajouter une majuscule a quelques uns de mes fichier (parce que j'en ai oublié et comme je suis sous windows les majuscules et les minuscules c'est pareil), mais le problème c'est que quand je modifie le fichier (en rajoutant la majuscule) sur mon PC, git ne trouve aucune modification faites, quelqu'un sait si il y a une autre solution que de supprimer et de recréer le fichier ?
Nan le fichier a déjà été modifié plusieurs fois (ça fait longtemps, mais c'est que maintenant que j'ai décidé de compiler pour linux) mais ça a pas changé les majuscules.
De toute façon j'viens de réfléchir au problème et ce que je demande c'est un peu con je pense, j'pense pas qu'il soit possible avec git de mettre à jour un nom de fichier, enfin quand on fait ça git va considérer que l'ancien fichier a été effacé et que le fichier renommé est un nouveau fichier, donc bon dans tous les cas il sera considéré comme étant supprimé, alors autant le faire manuellement.
Fais-le en deux temps : change le nom en rajoutant un suffixe, commit/push puis change-le de nouveau avec le bon nom.
Tu es sur Windows, non ? Celui-ci considère de la même manière les casses différentes.
MonFichier == monfichier.
C'est... casse-couille.
Nota : ça a peut-être changé avec le 10, j'ai pas testé.
Oui je suis sous windows je l'ai précisé plus haut, mais voulant compiler pour linux ça m'a posé problème.
Et même avec W10 c'toujours pareil, j'y connais pas grand chose mais je pense que ça vient du système de fichier et pas de windows en lui-même, après je peux me tromper.
EDIT: Et en tout cas merci, c'est ce que je ferais.
Est-ce qu'un programme qui utilise une dizaine de thread c'est un problème ?
Parce qu'en fait j'ai un programme Qt, et dedans j'ai une liste d'onglet, et j'aimerais bien que chaque onglet possède un thread (voir deux) pour pouvoir créer des requêtes sans faire freezer le programme, mais je me dis que si il y a 5 onglets ça doit faire beaucoup 5 (ou 10) thread (j'ai aucune notion de ce côté là, je sais pas ce qui est beaucoup et ce qui ne l'est pas)