QCM 2012 Hydratation

Bonjour, je ne saisi pas exactement l'énoncé du sujet : si j'ai a=42 et b=45, puis-je satisfaire une commande de 6 centilitres ?
Si j'ai 2 gobelets de chaque, je verse b1 dans a1 et b2 dans a2 puis b2 dans b1 et j'ai 6 centilitres dans b1.
Si je n'ai qu'un gobelet de chaque, je ne vois pas comment satisfaire une commande de 6 centilitres.

Il me semble que JJ à affirmé qu'un gobelet de chaque ou une infinité c'était pareil. Me suis-je trompé ? Ais-je vraiment rien compris à l'énoncé ( ce ne serait pas la première fois avec les énoncés de Prologin ) ?
Quel est la solution pour a=42 et b=45 ?

La solution est 15. Et effectivement, on peut faire 6.
(Si j'ai le droit, je peux aussi mettre la liste des commandes pouvant être satisfaites...)

Seker >>> ce ne serait pas la première fois avec les énoncés de Prologin

C'est tout à fait voulu, la piètre qualité d'exposition des énoncés de Prologin est une marque de fabrique et permet de faire une meilleure sélection des candidats : It's not a bug, it's a feature !!

Et plutôt que de rédiger des énoncés décents, les auteurs nous informent de l'ambiance Prologin : tu mangeras des pains au chocolat (jusqu'à 1 milliard moins 1), accompagnés de jus d'orange (en quantité infinie) et tu te feras mousser. Parce que, surtout, un candidat Prologin doit avoir le sens de l'humour.

P.S. 1 : Oui, j'ai oublié de préciser que cette année nous avons droit à un cru particulièrement exceptionnel.
P.S. 2: alex3er >>> (Si j'ai le droit, je peux aussi mettre la liste des commandes pouvant être satisfaites...)

Ça reviendrait à donner la solution à l'exercice ...

Bonjour,
tu remplies b, tu vides b dans a, tu vide a dans l'évier, tu verses b dans a, tu remplies b, tu verses b dans a, t'as alors 6cl dans b.

Dans la vie, t'as rarement un énoncé clair, t'as rarement un énoncé drole, et t'as rarement une façon aussi simple de tester tes programmes que ce qu'on offre... Dans la vie, t'as souvent des énoncés qui changent en cours de projet, des cahiers des charges écrits par des gens qui n'y conaissent rien (et quand ils en écrivent, t'as de la chance). Bref, on fait un gros effort sur la correction, un gros effort sur l'humour, et un gros effort sur la qualité du problème : on fait en sorte qu'il existe une solution qui puisse intéresser le plus de candidats possibles.

On cherche a vous apprendre des trucs en vous divertissant, à faire aimer la programmation... OK c'est pas toujours très clair, c'est pour ça qu'on a un forum, et c'est pour ça qu'on est à vos cotés en demie finale (quand vous n'avez pas plusieurs mois pour comprendre...) Parfois, si on mettait le truc sous forme mathématique, l'exercice deviendrait trop simple, mais ne serait pas accessible à tous.

Notre façon de faire a des défauts, c'est parfois par manque de temps, parfois par manque d'argent, mais jamais par manque de motivation. Si tu veux écrire des sujets et si tu ne veux plus (ou n'as plus l'age de) participer, on peut en discuter au local prologin.

Cordialement,

Maxime

Candide, tu as passé une mauvaise nuit ? D'accord l'énoncé n'est pas clair, mais ce n'est pas une raison pour s'acharner de la sorte. Le concours n'a rien "d'officiel" et est organisé par des étudiants. Ce n'est pas comme si c'était un exercice de partiel... En plus on peut discuter des imprécisions sur le forum et elles sont assez souvent corrigées.
Si ce détail te met hors de toi à un point tel que Prologin est au plus bas dans ton estime, pourquoi prendre la peine de venir parler ici ?

Cela étant dit, il faudrait effectivement préciser les actions qu'on a le droit de faire, c'est-à-dire :
- remplir un gobelet complètement ;
- vider un gobelet complètement ;
- transférer le contenu d'un gobelet dans un autre jusqu'à ce que le gobelet émetteur soit vide ou que le gobelet récepteur soit plein.

Sekket : essaye de simuler toi-même ce que tu peux faire avec tes deux gobelets. En prenant le temps de réflechir tu verras des choses apparaître.
J'ai pensé à te donner la marche à suivre pour obtenir 6 mais il te faudra pas grand chose pour la trouver tout seul. Donc j'vais te laisser ton plaisir. :p Surtout que ton exemple (a=42, b=45) est très bon pour comprendre comment ça marche.

@Candide : Juste pour information, Pikrass est un candidat et non un organisateur du concours (nous songeons d'ailleurs à un moyen pour identifier un peu plus officiellement les organisateurs que par une signature).

En effet nous avons déjà eu une discussion à ce sujet et même si les formes ne sont pas toujours là, les remarque faites par Candide sont le plus souvent fondées et pertinentes. Nous réfléchissons d'ailleurs à clarifier un peu les sujets de cette année et sommes toujours preneurs de remarques sur notre travail du moment que cela est constructif et peut améliorer l'expérience pour les candidats.

D'accord l'énoncé n'est pas clair, mais ce n'est pas une raison pour s'acharner de la sorte. Le concours n'a rien "d'officiel" et est organisé par des étudiants. Ce n'est pas comme si c'était un exercice de partiel

J'ai déjà eu cette discussion sur le forum il y a quelques années (vous aviez fini par effacer mes messages) et ensuite par mail privé, les arguments que tu me donnes je les ai déjà entendus. Je n'arrive toujours pas à m'expliquer comment vous faites des énoncés aussi pénibles à comprendre alors que votre concours s'adresse au plus grand nombre (au moins le QCM), c'est même souvent plus difficile que de répondre à la question quand on a fini par la comprendre.

Si ce détail te met hors de toi à un point tel que Prologin est au plus bas dans ton estime, pourquoi prendre la peine de venir parler ici ?

Prologin n'est pas bas dans mon estime, au contraire, je vous ai souvent félicité pour les exos assez intéressants que vous proposez. Par différents canaux, je sais que vos énoncés ne sont souvent pas très intelligibles. Souvent ça suffit à dissuader les gens de commencer à chercher.

Cela étant dit, il faudrait effectivement préciser les actions qu'on a le droit de faire, c'est-à-dire :
- remplir un gobelet complètement ;
- vider un gobelet complètement ;
- transférer le contenu d'un gobelet dans un autre jusqu'à ce que le gobelet émetteur soit vide ou que le gobelet récepteur soit plein.

Ce n'est même pas tellement ça. Le problème de base est que vous voulez donner un contexte ludique mais complètement artificiel à votre exo, soit disant pour qu'il soit mieux compris, et justement ce contexte rend l'énoncé confus. Ainsi, comme il y a plein de candidats et ben on se dit que le problème doit se résoudre pas avec 1 gobelet a et 1 gobelet b mais avec plein de gobelets a et b. Ou encore, remplir de jus d'orange c'est bien mais vider où ? Vider dans l'évier puisqu'on a une quantité infinie de jus d'orange, mais jeter dans l'évier du jus d'orange, ça la fout mal donc on a doute sur l'énoncé, c'est trouble.

D'autre part, le processus d'obtention des quantités n'est pas clairement expliqué : savoir comment vider, comment remplir, sous entendu complètement, ça c'est plus ou moins acquis chez le lecteur, mais ce qu'il faut dire c'est que les volumes recherchés sont l'obtention de toutes les suites imaginables de vidages et de remplissages, que le remplissage et le vidage peuvent avoir lieu à n'importe quel moment.

Par ailleurs, l'exemple que vous donnez est très mal présenté, rien ne dit s'il s'agit d'opérations indépendantes ou pas. Bon, c'est pas le cas mais ça m'a pas semblé clair tout de suite. Vous auriez mis une légende, avec de gauche à droite, genre état 1, état 2 et état 3, ça aurait été plus clair. En plus de ça, le nombre 2 est marqué à gauche alors qu'il devrait être marqué au centre ou a droite (ne sont marqués que des gobelets pleins). Enfin, le choix de 2 et 8 était particulièrement maladroit (une quantité divise l'autre) en sorte que les candidats peuvent penser que le problème consiste à vider le plus grand gobelet avec le plus petit, et basta.

Il faut reconnaître que le problème est assez délicat à décrire sobrement. Et pourtant, il était pas très difficile de donner un énoncé 10 fois plus compréhensible que le vôtre surtout que le type de problème est classique.

Bon en réalité, je n'ai pas eu personnellement trop de difficulté à comprendre cet énoncé. Les pires sont le 2 et le 4.

Dommage, car l'exo 3 est vraiment tout à fait intéressant. De même, j'ai vaguement compris le principe de l'exo 2, il est assez voire très intéressant, dommage qu'il soit gâché par le contexte artificiel et les explications bien confuses. Quant à l'exo 4, j'ai rien compris à votre histoire de mousse et de jeu et l'exercice n'est pas assez excitant pour essayer de creuser.

Si j'ai bien compris le sens de l'exercice, on peut utiliser plusieurs gobelets b ainsi que plusieurs gobelets a ?

C'est un des questions perturbantes (mais une des moindres) de l'énoncé, je me la suis immédiatement posée. D'après ce que j'ai lu sur un autre fil, qu'il y ait un ou plusieurs exemplaires des gobelets a ou b ne modifie le nombre demandé (par contre, si on avait un algo parallèle, ça modifierait peut-être le temps de remplissage). Tu peux donc supposer qu'il y a exactement un seul gobelet de contenance a et un seul de contenance b.

C'est là qu'on voit les limites des contextualisations réalistes des énoncés : les auteurs veulent donner un côté réel et «accrocheur» (je vais rester mesuré dans mes propos) en se référant aux jus d'orange du jour du concours que VOUS allez passer, en parlant de détails comme la température dans la salle des machines, etc) mais à force de mélanger réalisme et imaginaire (servir tout le monde avec deux tailles de gobelets, disposer d'une quantité infinie de jus, vider l'excès de jus d'orange dans je ne sais quoi), on ne sait plus comment faire les bonnes hypothèses. Ces contextualisations qui sont censés aider finissent par obscurcir.

En même temps, c'est surtout le principe de l'exercice qui est dur à expliquer. Et ce qu'on parle de façon imagée ou avec du formalisme mathématique (la seconde étant souvent indigeste et tout le monde ne la comprendre pas). Je vois mal comment expliquer le problème autrement, et de mon côté je ne trouve pas "l'enrobage imaginaire" étouffant. Il sert juste à l'introduction.

En même temps, c'est surtout le principe de l'exercice qui est dur à expliquer.

Absolument, cet exercice est assez difficile à transmettre si on veut respecter un équilibre entre la rigueur et la neutralité de l'énoncé et d'autre part l'intelligibilité du texte.

Et ce qu'on parle de façon imagée ou avec du formalisme mathématique (la seconde étant souvent indigeste et tout le monde ne la comprendre pas).

Je ne suis même pas sûr que le formalisme mathématique soit nécessaire ici.

Je vois mal comment expliquer le problème autrement, et de mon côté je ne trouve pas "l'enrobage imaginaire" étouffant. Il sert juste à l'introduction.

Mouais, d'après wc (wordcount), c'est à peu près 1/3 de l'énoncé, je n'appelle plus ça une introduction (l'introduction est donc la moitié du contenu consistant). Sans compter que l'énoncé mélange exposé factuel (quantité infinie, 2 volumes a et b) et sentimentalité («hélas») dans une formulation tordue («bien que»). Il ne faut pas confondre la cerise et le gâteaux. Je veux bien qu'on enrobe mais à condition que l'essentiel soit préservé. S'il ne l'est pas, je vais, de façon peut-être injuste, me focaliser sur ce qui pollue l'énoncé. Un élément beaucoup plus important que l'énoncé (forcément abstrait) est le soin accordé au choix et au traitement des exemples.

J'ai compris l'énoncé, la seule chose que je saisis pas c'est le "Vider le gobelet de 2 cL puis y verser 6 cL de jus d'orange nous permet d'obtenir 4 cL."

On met 6 cL dans un gobelet qui peut en contenir 2 ?

En fait, tu essayes de verser 6 cL, mais en t'arrêtant quand le gobelet d'arrivée est plein. Donc au final tu ne verses que 2 cL, et il t'en reste 4 dans le gros gobelet.

J'ai compris l'énoncé, la seule chose que je saisis pas c'est le "Vider le gobelet de 2 cL puis y verser 6 cL de jus d'orange nous permet d'obtenir 4 cL."

Tu as l'énoncé de la version pdf mais il faut aller sur la partie entraînement pour avoir un énoncé un peu plus explicite, en particulier les exemples.

A ce propos, vous aussi l'algo vous renvoi a chaque foi une valeur "bizarre" ?
Je l'ai codé, j'ai passé les tests avec succès mais je me suis aperçu en le testant moi même qu'a chaque foi le nombre de service était très prévisible (Je ne veux pas spoiler si j'ai raison).
D'où ma question : obtenez-vous aussi quelque chose dans le genre ou je me suis vraiment planté en codant mon algo ?

Tu as bien (3, 5) => 5 et (9, 12) => 4 ?
Si oui, ton algorithme est sûrement le bon.
Et ces exemples permettent de te montrer que ce n'est pas si évident. ;)

Oui j'ai bien ça, autant pour moi, merci !!
En fait j'avais fait mes tests avec des valeurs particulières je pense donc je tombais tout le temps dans le premier cas que tu as cité (où b correspond au nombre de solution), mais après avoir testé avec 9 et 12 je trouve bien 4.
Encore merci, bonne soirée !

Répondre au sujet

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