QCM 2012 | Premier exo

Plop.

Alors j'ai un truc super louche...
Mon code passe les "Tests de vérification" mais foire le deuxieme "[Test] de performance" et renvoie 0 au lieu de 1...
Comment c'est possible ? -.-

Merci d'avance.

Ouais je trouve ça dommage, mais ça m'est aussi arrivé (quand je m'amusais à tester la solution dans tout les langages). Bref, il semblerait qu'il y ait des cas particuliers dans le test de performance qui n'étaient pas dans les tests de vérification.

Non, mais ce qu'il veut dire, c'est qu'il pense que lors des tests de vérif, on a fait quelques les cas principaux, et les cas particuliers.

Le truc c'est que en theorie, je peux avoir ce genre d'erreur que sur les tests de verif... et en tests de perfs, je peux juste avoir temps depasse...

Non c'est bon en fait. Je suis jsute con...
Mais ce test devrait etre dans les tests d'en haut, pas dans les tests de perf...

Les tests de perf consistent simplement en de grosses entrées.
Les tests de vérifications ne peuvent cependant pas être exhaustifs, il se peut donc qu'un algorithme faux parvienne à les passer mais qu'il bloque sur un test de performance. En ce sens ils complètent un peu les tests de vérification :)

d'avoir codé*
Mais même en goret, je vois mal qui aurait essayé de faire sans utiliser quelques ifs avec des opérateurs logique... Pour moi, "tests de performance" veut rien dire pour ce problème. Comment pourrait-on réussir pour des données comme "18 10 1992", "27 2 1990" mais se rater pour " 31 12 2012"?
A part en faisant exprès ( if(annee>2010) {while(1);}) , ça me parait impossible de faire un algo donnant les bonnes réponses, mais non optimal...

Bah... si tu veux t'as l'algo :

while date différent de 1 janvier 1942
retirer un jour a date
si 1 mai 1991 retourner 1
retourner 0

J’espère que personne a coder ça... mais bon voila.

Bien vu! Mais ptain, ce serait vraiment tordu, vu qu'il faudrait tenir compte des années bissextiles, et des différentes longueurs de mois pour la fonction prédécesseur ( ou la surcharge d’opérateur --). Et le mec qui aurait eu l'idée de cet algo aurait donc été incapable de l'implémenter (parce que là.... C'est pas un algo naïf, c'est un algo hybride entre le méga bisounours et le télétubbies "Po").

Moi, monsieur, j'ai fait sans if ! (Bon, j'ai quand même des conditions, mais ça ne compte pas pour un if. =p)

Tout programme ? Alors, autant sans while ni for je peux le concevoir (on fait des fonctions récursives à la place, ou des... goto ), autant sans if ni opérateur ternaire j'vois pas bien. Sans utiliser de l'assembleur hein.

Tout programme peut être réalisé dans un langage Turing-Complete. Par exemple, essaie de faire les exos en Brainf*ck, maintenant qu'il est implémenté.

Bon déjà, les &&, || et les if peuvent se rapporter a un opérateur ternaire (trivialement).
Ensuite :
{ a?b:c; }
Peut s’écrire (avec T le type des expressions b et c) :
T funb(){
return b;
}

T func(){
return c;
}
...
{
T (*branch[2])() = { &funb, &func };
brancha==0;
}
Bon, bien sur il y a quelques autres details a prendre en compte (typiquement les expressions b et c peuvent etre de type differents et il faut passer le scope en argument), mais l'idee est la.

Répondre au sujet

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