le terme maximal de la suite ainsi que le plus petit indice n tel que
Il va falloir gérer à la fois la longueur de l'algorithme et sa rapidité . En effet, chaque algorithme aura une note. Par exemple, un algorithme de n caractères et qui répond en x secondes pour une entrée u0 aura une note égale à : n*50%+x*log(u0)*50% (le log est utilisé car u0 va être grand aussi, c'est une fonction croissante et donc, plus u0 est grand et plus. Bien entendu les notes seront attribuées en fonction du u0 d'entrée. Un exemple plus concret : un algorithme de 50 caractères qui répond au bout de 2.53 secondes pour u0=10^6 aura une note de 32.59.
Le gagnant sera le créateur de l'algorithme qui possédera le nombre de points le plus faible.
L'algorithme devra être présenté comme celui-ci :
- Code: Tout sélectionner
Define syracuse(u0)=
Func
VOTRECODE
EndFunc
On déterminera la longueur de l'algorithme en comptant le nombre de caractères de VOTRECODE.
NB :
- On entrera un nombre u0 positif.
- Si l'algorithme n'est pas exact (s'il ne sors pas le bon nombre d'itérations), il n'est pas noté est donc son créateur ne concourt pas.
- Le retour à la ligne est considéré comme un caractère (car remplacé par : si le code est en ligne)
- Les espaces ne sont pas comptés (pour l'indentation par exemple)
- La ligne "Local" n'est pas comptée
- Les noms des variables, peu importe leur longueur, auront une longueur de 1 (car d:=1 ou diviseur:=1 revient au même après tout )
Mais, ce n'est pas fini ! À l'aide de cet algorithme vous devrez créer un second qui permettra de trouver le nombre qui possède le plus grand temps de vol entre 1 et 10^7 !
Cette fonction renverra une liste de dimension 2 avec les deux données recherchées : le nombre en entrée et le temps de vol.
Là aussi, vous serez évalué sur la durée et la longueur du programme et vous aurez une seconde note (si le résultat trouvé est juste). La note finale sera donnée par une moyenne des deux notes.
Bonne chance
PS : Mon score au premier algorithme, en ne me cassant pas trop la tête : 79.5771 (avec u0 = 2361235441021745907775 qui correspond au nombre connu aujourd'hui dont le temps de vol est maximal)
--------------------------Scores 1er Algo (avec u0 = 2361235441021745907775)
davidElmaleh : 79.5771
Critor: 57.1198
Bisam : 52.9595
--------------------------Scores 2e Algo