CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Progresser

khazcomt
khazcomt
Niveau 5
06 octobre 2017 à 20:54:17

Bonjour tout le monde , j'ecris un poste ici pour que vous m'aidiez à progresser tout simplement, je me présente rapidement j'ai commencé l'info l'année derniere en fac d'info.

Je suis maintenant en L2 et ce qui m'interesse le plus de loin c'est l'algorithmie je me suis donc naturellement mis a en faire en dehors des cours avec project euler mais j'ai l'impression d'avoir beaucoup de mal , je suis actuellement au 20eme exercice et en general je met beaucoup de temps a en faire un seul , je programme en C et chaque exo me demande d'ecrire beaucoup de ligne de code car je fais toute les fonction moi méme , je prend l'exemple de cette exercice la pour expliquer mon probleme.

Dans cette exercice il faut calculer la factorielle de 100 , calculer une factorielle n'est en soit pas compliqué du tout mais le nombre obtenu sera bien trop grand pour etre stocké dans quoi que ce soit il faut donc manipuler des chaines de caractere dans tout les sens et ca m'embete franchement ( ou bien je suis simplement mauvais je l'exclue pas x) ) mais j'ai l'impression que d'utiliser un langage type python avec plein de choses toute faites ou des bibliotheque ca va pas me faire progresser hors je recherche la progression et non pas betement resoudre les exos demandés.

Mais peut etre que je me trompe de facon de faire et que ma méthode n'est pas bonne pour apprendre ? merci beaucoup d'avance ;)

sentrance
sentrance
Niveau 10
06 octobre 2017 à 21:38:18

Pour ton exemple effectivement c'est compliqué. Le plus commun pour les calculatrices à nombre infini c'est de stocker les nombres sous forme de char * afin de calculer directement dans la chaine de caractère et d'éviter de dépasser le long.

Mais en vrai ça ne prend pas tant de lignes de codes que ça, mais il faut effectivement savoir bien gérer des tableaux/chaines de caractère.

Tikim
Tikim
Niveau 21
06 octobre 2017 à 21:56:26

Le C c'est pas un language qui se prête très bien à ce genre de problème. C'est possible bien sûr mais le challenge est bien plus élevé qu'en Python. Perso j'ai fait 60 problèmes en Python, moi aussi j'écris tout moi-même mais le langage permet de faire bien plus de choses de base ! Je dis ça, je fais du C tous les jours au boulot, mais pas des maths.

L'avantage du C sur Euler c'est que c'est plus rapide à l'exécution. Mais c'est un très faible avantage au final puisque sur ces problèmes quand on en est à devoir optimiser c'est pas d'un facteur 2 ou 3, c'est que l'algorithme idéal est simplement d'un autre ordre.

khazcomt
khazcomt
Niveau 5
06 octobre 2017 à 22:01:55

Le 06 octobre 2017 à 21:56:26 Tikim a écrit :
Le C c'est pas un language qui se prête très bien à ce genre de problème. C'est possible bien sûr mais le challenge est bien plus élevé qu'en Python. Perso j'ai fait 60 problèmes en Python, moi aussi j'écris tout moi-même mais le langage permet de faire bien plus de choses de base ! Je dis ça, je fais du C tous les jours au boulot, mais pas des maths.

L'avantage du C sur Euler c'est que c'est plus rapide à l'exécution. Mais c'est un très faible avantage au final puisque sur ces problèmes quand on en est à devoir optimiser c'est pas d'un facteur 2 ou 3, c'est que l'algorithme idéal est simplement d'un autre ordre.

Tu me rassures un peu , car j'ai lu sur internet que les 50 premiers etaient censé etre ultra simple et je vois que je galere déja au 20 ca m'effraie

godrik
godrik
Niveau 30
07 octobre 2017 à 00:48:01

disons que les 50 premiers sont simple dans le sens qu'ils sont dans les bouquins d'algo.
Certains des problemes qui sont plus loins sont pas vraiment resolu pour l'instant. Il sont calculable mais il faut etre assez fort dans differents domaine pour y arriver.
Je suis sur qu'il y en a plein que je ne sais pas resoudre.

khazcomt
khazcomt
Niveau 5
07 octobre 2017 à 01:44:51

Le 07 octobre 2017 à 00:48:01 Godrik a écrit :
disons que les 50 premiers sont simple dans le sens qu'ils sont dans les bouquins d'algo.
Certains des problemes qui sont plus loins sont pas vraiment resolu pour l'instant. Il sont calculable mais il faut etre assez fort dans differents domaine pour y arriver.
Je suis sur qu'il y en a plein que je ne sais pas resoudre.

Ah je vois , et du coup tu penses que continuer a programmer en C quitte a mettre beaucoup de temps a en faire un seul est un bon moyen de progresser en algorithmie ?

whiteapplex
whiteapplex
Niveau 18
07 octobre 2017 à 09:34:38

Le 07 octobre 2017 à 01:44:51 KhazComT a écrit :

Le 07 octobre 2017 à 00:48:01 Godrik a écrit :
disons que les 50 premiers sont simple dans le sens qu'ils sont dans les bouquins d'algo.
Certains des problemes qui sont plus loins sont pas vraiment resolu pour l'instant. Il sont calculable mais il faut etre assez fort dans differents domaine pour y arriver.
Je suis sur qu'il y en a plein que je ne sais pas resoudre.

Ah je vois , et du coup tu penses que continuer a programmer en C quitte a mettre beaucoup de temps a en faire un seul est un bon moyen de progresser en algorithmie ?

En fait tu peux progresser de plein de manière possible en algorithmie. Il y a plein de branche de domaine algorithmique: Le réseaux, les graphes, l'optimisation, l'apprentissage automatique, le traitement d'image, la recherche opérationnelle etc.. (beaucoup se recoupent entre eux)
Tout dépend donc du domaine dans lequel tu veux progresser.
Moi je conseille personnellement l'optimisation vu que tu pourras appliquer ce que tu auras appris à tous les autres domaines et à énormément d'autres problèmes.
Tu peux voir les algorithmes génétiques, c'est quelque chose de très intuitif si t'es familier avec le darwinisme.

Pour répondre à ta question sur ce que je comprends, utiliser le C ou le Python c'est un peu la même chose sur les problèmes algorithmiques. Quand on te demande d'en résoudre un on part pas du principe que tu as à implémenter des choses bas niveau (comme ce qui pourrait être le cas en C). Mais dans ton cas particulier, je crois que 100! peut-être calculé en C dans un double ou même long double (on est sur du 10^157 et double va sur du 10^308 en 64b http://fr.cppreference.com/w/cpp/language/types ) (et long double va au delà je crois)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment