Salut tout le monde ![]()
Le Google Code Jam 2015 commence très bientôt (vendredi à 16h). Faites chauffer vos neurones, étirez vos doigts potelés, la compétition s'annonce endiablée ![]()
Heu ... Le Google Code Jam c'est quoi ![]()
C'est un concours d'algorithmique et de programmation organisé par google. La compétition est composé d'un round de qualification online suivi de trois rounds online également. Les 25 meilleurs candidats du troisième round sont qualifiés pour la finale aux Etats-unis.
Comment se présente une épreuve ![]()
Chaque "round" est composé de plusieurs problèmes. Chaque problème doit être résolu en écrivant du code informatique dans le langage de programmation de votre choix (et avec l'IDE de votre choix).
Plus précisement, pour chaque problème, il vous est fourni deux fichiers input. Ces deux fichiers contiennent des instances du problème (en format .txt). Le but est alors de générer automatiquement les résultats des instances dans un fichier output. Vous pouvez alors uploader votre fichier output sur les serveurs de google. Le juge automatique vous indiquera alors si votre réponse est correct. Si c'est le cas, vous gagnez des points. Le but est d'avoir le plus de points possible.
Pourquoi deux fichiers input ?
Il y a souvent plusieurs façons de résoudre un même problème. En particulier, il y a des façons plus efficaces que d'autres. Ainsi, le premier fichier input contient uniquement des petites instances qui peuvent résolu avec des algorithmes "brutales" (comprenez simple). Le second fichier input contient des instances de tailles beaucoup plus grandes et il faudra alors redoubler d'ingéniosité si vous voulez obtenir une réponse en un temps raisonnable
Mais inutile de préciser que le deuxième fichier rapporte beaucoup plus de points que le premier !
Puis-je m’entraîner afin de préparer la compétition ou pour m'amuser ![]()
Oui, le site du Google Code Jam propose les problèmes des années précédentes. Je vous invite à essayer ces problèmes et à vous inscrire si vous êtes intéressés: https://code.google.com/codejam/contests.html.
C'est très amusant !
Il sert à quoi ce topic ![]()
A partager mon intérêt pour l'algorithmique et la programmation ainsi qu'à vous informer/motiver . C'est un bon moyen de s'améliorer rapidement dans ces deux domaines (ainsi qu'en maths pour certains problèmes) de façon très ludique.
Voilà, n'hésitez à pas à demander de l'aide si vous bloquez sur un problème d'entrainement. N'hésitez pas non plus à partager votre score sur ce topic ![]()
Pour ceux qui comptent participer, quel est votre objectif ? Quel langage allez vous utiliser ?
A vos claviers et bonne chance à tous ![]()
Très bon topic, bonne chance à tous !
bonne chance !
moi je connais que le python & c++ (puis à moitié php/html et django lol )
je connais ni c# ni java ![]()
Un seul langage est largement suffisant pour pouvoir participer.
Perso, je vais faire la majorité des problèmes en python ![]()
J'me laisserais bien tenter ! ![]()
Merci pour l'info, je me suis inscrit
http://www.go-hero.net/jam/14/solutions
Le 10 avril 2015 à 08:28:40 boyd-fowler a écrit :
http://www.go-hero.net/jam/14/solutions
Les solutions sont aussi disponibles sur le site du concours.
Je me suis trompé sur l'heure française du début du tour de qualification. C'est ce soir à 1h du matin.
Mais pas d'affolement, l'épreuve dure 27h pour que tout les fuseaux horaires puissent en profiter.
L'épreuve de quafilication est différente des autres car il suffit d'obtenir 25 points (ou 35 selon les années) pour être qualifié.
J'ai pas bien compris , on a le fichier texte on fait un programme qui résous le problème et on met la réponse sur un autre fichier texte qu'on envie a google ?
Le 10 avril 2015 à 20:27:01 Hamsterloulo a écrit :
J'ai pas bien compris , on a le fichier texte on fait un programme qui résous le problème et on met la réponse sur un autre fichier texte qu'on envie a google ?
Non on a un problème. Ce problème est disponible sur une page web.
L'objectif est de coder une solution qui fonctionne pour toutes les instances du problème.
Pour tester votre solution, google fournit un fichier .txt qui contient plusieurs instances du problème.
Pour chaque instance, le résultat (que vous avez obtenu à l'aide de votre programme) doit être écrit dans un même fichier. C'est ce fichier que vous envoyez sur le serveur de vérification.
Exemple:
- Problème : José à deux frères. Le premier à X an(s) et le deuxième à Y an(s). José souhaite connaitre l'âge de son plus jeune frère.
- Fichier input:X=5 Y=10
X=4 Y=1
X=3 Y=3
Ce fichier contient trois instances du problème. Les vrais fichiers input sont composés d'une centaine d'instances.
Une fois que vous avez programmé une solution, vous devez.alors générer la solution des instances du problème.
Exemple de fichier output:Première instance : 5
Deuxième instance : 1
Troisième instance : 3
Bien sur, pour que le juge automatique puisse déterminer si votre soumission est correcte. Le fichier output doit respecter un format imposé par google (qui est expliqué pour chaque problème).
Oki j'ai un peu mieux compris merci ^^ , les fichiers output doivent pas nécessairement être générer par le programme si ?
Les problèmes sont durs ou pas ?
Les problèmes ne sont pas très durs non, mais tu ne peux pas les faire à la main si c'est ce que tu as en tête
Tu as 3 minutes entre le moment où tu obtiens le fichier d'input et le moment où tu dois envoyer les réponses
Ah en gros tu dois faire le code avant d'avoir le fichier d'input ?
Le 10 avril 2015 à 22:26:32 Hamsterloulo a écrit :
Ah en gros tu dois faire le code avant d'avoir le fichier d'input ?
Oui mais tu connais le format du fichier d'input.
Le 10 avril 2015 à 22:25:02 Lowenheim a écrit :
Les problèmes ne sont pas très durs non, mais tu ne peux pas les faire à la main si c'est ce que tu as en têteTu as 3 minutes entre le moment où tu obtiens le fichier d'input et le moment où tu dois envoyer les réponses
Les problèmes sont de difficultés variables. Dans les rounds plus avancé, il est nécessaire de connaître certaines méthodes d'optimisation (programmation dynamique en tête) pour résoudre les problèmes.
Excepté pour le tour de qualification, il faut également résoudre les problèmes le plus rapidement possible. Ainsi, il faut trouver l'algorithme rapidement et coder la solution rapidement (et efficacement).
Programmation dynamique c'est typiquement ce que je classais dans "pas très dur", dans le sens où il s'agit de problèmes assez classiques que l'on reconnait assez facilement et qui se résolvent de manière assez systématique quand on a quelques bases d'algo. Par opposition à des problèmes plus ouverts qui demanderaient d'élaborer un algorithme un peu plus original. Après c'est sur que ça dépend du background qu'on a en informatique
Bon c'est pas pour moi cette année j'ai pas encore d'expérience
Pour les participants, ou en êtes-vous ? ![]()
Je viens de valider le A et je me creuse la tête sur le C actuellement
Il me manque le C et le large du D.
Le B m'a trollé une bonne partie de la soirée ![]()
Petit UP pour signaler que le round 1 A est samedi à 3 heures du matin.
Trop tard pour moi, je vais attendre le round 1 B ![]()