Quelques questions sur les algorithmes

Hello !
Participant pour la première fois à ce concours, je me pose quelques questions quand aux algorithmes demandés. Ce serait couillon que je me foire parce que je n'ai pas suivi les consignes x]

1/ Peut-on utiliser des objets, ou l'exécution doit-elle oligatoirement passer par une fonction unique ?
Je pense ici notamment au troisième algorithme qui, dans mon code, s'instancie ainsi:

1
2
3
  $tmp    = new LeFilDAriane($map);
    $result = $tmp->process($startX, $startY, $endX, $endY);
?>

2/ Le premier algorithme demandé demande de trier trois dates. Mais est-ce une façon de parler (est-il possible qu'il y ait plus ou moins de trois dates qui soient passées en paramètre de la fonction) ?

3/ Sur quels critères sont notés les algorithmes ? Rapidité/Simplicité/Légèreté ? Je demande pas une grille détaillée, mais s'il était possible de savoir quels morceaux optimiser en particulier, ce serait plus pratique \^\^

4/ Un pseudo-code doit-il être envoyé en même temps que la fonction ? Et doit-on démontrer mathématiquement la validité de l'algorithme (je pense ici au dernier algorithme, qui m'a bien cassé la têtevu que j'était partit sur une mauvaise base ... je suis quasi-sûr que mon algo fonctionne, mais je ne réussi pasàle démontrer avec mes connaissances de math) ? Enfin, les codes doivent-ils être commentés ?

Voilà ... Et sinon, j'ai vu que le PHP n'est pas autorisé en épreuves post-qualificatives (enfin ... je ne sais pas quel est le nom exact). C'est à mon sens une erreur: même s'il s'agit à la base d'un langage étant conçu pour la réalisation de sites internet, il peut également gérer des algorithmes, tout autant que les autres. Par exemple, l'écriture d'un algorithme AStar serait très simple avec ça (enfin bon ... c'est vrai qu'il est basique celui-là, et que même en Javascript on peut le faire >.M'enfin bon ... je ne saurais expliquer plus précisement, mais à mon sens ça limite un peu les créateurs.

Merci d'avance !

Salut !

1/ En général, on préfère avoir une fonction. Si tu mets tes deux lignes de code dans une fonction, ce sera plus clair pour les correcteurs.

2/ Non, ce n'est pas une facon de parler : il y a seulement trois dates. Oui, c'est un exercice facile. Si tu vas dans la section Entrainement, tu auras plus de dátails sur les questions et tu pourras voir des exemples de code à compléter (il me semble que PHP n'y est pas encore, mais j'imagine que tu connais un autre langage).

3/ Le plus important est l'algorithme utilisé (sa complexité) : si on teste ton code avec de grandes valeurs, est-ce que l'on obtient le résultats en quelques secondes ou en quelques mois ? :)
Ensuite, essaie de faire un code simple et facile à comprendre.

4/ Ce n'est pas exigé. Si ton code est compliqué, essaie de mettre des commentaires pour éviter de faire perdre du temps au correcteur. Tu peux mettre du pseudo-code si tu penses que c'est utile pour la compréhension. Pour la preuve : si ca t'amuse, mets-la ; ce sera très apprécié lors de la correction... Mais, ce n'est asolument pas demandé (beaucoup de candidats ne savent pas faire cela).

Dans tous les cas, la correction est faire à la main, tu ne seras pas éliminé à cause d'un détail. Utilise ton bon sens, et tout devrait bien se passer. :)

Pour PHP : cherche sur le forum, il y a déjà eu des discussions sur les langages à ajouter. Pour répondre rapidement : ajouter un langage tout au long du concours demande beaucoup de temps et de compétence. PHP sera peut-être ajouté un jour, mais pas cette année. Si tu es habitué à PHP, le langage accepté le plus proche est Python.

"3/ Le plus important est l'algorithme utilisé (sa complexité) : si on teste ton code avec de grandes valeurs, est-ce que l'on obtient le résultats en quelques secondes ou en quelques mois ? :)
Ensuite, essaie de faire un code simple et facile à comprendre."

C'est pas que je veux paraître couillon, mais dans l'exo à vos montres du qcm 2009, il est précisé que c'est 3 heures, avec heures et minutes, donc je ne vois pas trop en quoi le temps que met l'algo peut changer sur 3 valeurs et sur des valeurs restreintes (max 23h59).
Pour 1 microseconde faut pas chipoter.(mais pour l'algo c'est mieux d'en avoir un optimisé)

J'avais déjà touché au python (mais principalement du tkinter, à l'époque), donc je devrais pouvoir m'y remettre.
Bon, vais aller faire la conversion de mes codes php en python, alors =]

marfi

Bien sûr : le but n'est pas de gagner une microseconde, ni d'économiser une variable. Le terme "complexité d'un algorithme" fait référence à une notion bien définie, cela correspond en gros au temps que prendra le programme, en fonction des entrées. Pour l'exercice 1, on s'en fiche, il n'y aura pas de problème de temps. Ma remarque était générale et ne parlait pas d'un exercice particulier.

J'avais mis des balises (sans l'espace)
j'ai vu qu'elle n'étaient pas ici.

"ni d'économiser une variable"

Oui mais si c'est un tableau de 500000(cf site du zero forum C-> les suites de Mendès) variables que tu peux économiser, la oui, cela compte.

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.