#17317 - VIDEO. Epreuve de maths: «C’est pas facile!», on a posé une colle à Cédric Villani
https://www.20minutes.fr/web/2245127-20180328-video-cedric-villani-epreuve-maths-web-facileLa majorité des gens n’y arrivent pas ? C’est que la majorité des gens ne savent pas programmer^^
9 cases à remplir, avec une seule fois un chiffre de 1 à 9, c’est juste 362 880 possibilités. À partir de là, il suffit de toutes les essayer et de retenir la ou les solutions qui donnent 66 à la fin (s’il y en a).
Je ne vois pas en quoi c’est un problème de math. C’est juste un casse-tête, comme un Rubik's Cube.
Avoir une méthode, et avoir les maths en tête, ça peut clairement aider à placer certains chiffres, mais même un idiot avec de la chance peut trouver la solution exacte du premier coup.
ÉDIT : après un peu d’aide #stackoverflow pour le C (pas mon langage de travail, mais c’est le plus rapide pour ces trucs là), j’ai obtenu ça :
#include<stdio.h>
#include<string.h>
void swap(int *a, int *b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void permutations(int *a, int l, int r) {
int i;
if (l == r) {
float aa,ab,ac,ad,ae,af,ag,ah,ai;
aa = (float) a[0];
ab = (float) a[1];
ac = (float) a[2];
ad = (float) a[3];
ae = (float) a[4];
af = (float) a[5];
ag = (float) a[6];
ah = (float) a[7];
ai = (float) a[8];
float calc = 0.0 + aa + (13. * ab / ac) + ad + (12 * ae) - af - 11 + (ag * ah / ai) - 10;
//printf("%f ", calc);
if (calc == 66.) {
printf("{%d, %d, %d, %d, %d, %d, %d, %d, %d} ==> ", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
printf("%d+(13*%d/%d)+%d+(12*%d)-%d-11+(%d*%d/%d)-10 = 66\n", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
}
}
else {
for (i = l; i <= r; i++) {
swap((a+l), (a+i));
permutations(a, l+1, r);
swap((a+l), (a+i));
}
}
}
int main() {
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
permutations(a, 0, 8);
return 0;
}
Et quelques-unes des solutions :
{8, 5, 2, 1, 4, 7, 3, 9, 6} ==> 8+(13*5/2)+1+(12*4)-7-11+(3*9/6)-10 = 66
{8, 5, 2, 1, 4, 7, 9, 3, 6} ==> 8+(13*5/2)+1+(12*4)-7-11+(9*3/6)-10 = 66
{8, 6, 4, 7, 5, 9, 3, 1, 2} ==> 8+(13*6/4)+7+(12*5)-9-11+(3*1/2)-10 = 66
{8, 6, 4, 7, 5, 9, 1, 3, 2} ==> 8+(13*6/4)+7+(12*5)-9-11+(1*3/2)-10 = 66
{8, 6, 9, 2, 5, 1, 7, 4, 3} ==> 8+(13*6/9)+2+(12*5)-1-11+(7*4/3)-10 = 66
{8, 6, 9, 2, 5, 1, 4, 7, 3} ==> 8+(13*6/9)+2+(12*5)-1-11+(4*7/3)-10 = 66
{8, 7, 2, 5, 3, 9, 1, 6, 4} ==> 8+(13*7/2)+5+(12*3)-9-11+(1*6/4)-10 = 66
{8, 7, 2, 5, 3, 9, 6, 1, 4} ==> 8+(13*7/2)+5+(12*3)-9-11+(6*1/4)-10 = 66
{8, 9, 2, 3, 1, 5, 7, 6, 4} ==> 8+(13*9/2)+3+(12*1)-5-11+(7*6/4)-10 = 66
{8, 9, 2, 3, 1, 5, 6, 7, 4} ==> 8+(13*9/2)+3+(12*1)-5-11+(6*7/4)-10 = 66
{9, 2, 8, 7, 6, 5, 3, 1, 4} ==> 9+(13*2/8)+7+(12*6)-5-11+(3*1/4)-10 = 66
{9, 2, 8, 7, 6, 5, 1, 3, 4} ==> 9+(13*2/8)+7+(12*6)-5-11+(1*3/4)-10 = 66
{9, 3, 2, 1, 5, 6, 7, 4, 8} ==> 9+(13*3/2)+1+(12*5)-6-11+(7*4/8)-10 = 66
{9, 3, 2, 1, 5, 6, 4, 7, 8} ==> 9+(13*3/2)+1+(12*5)-6-11+(4*7/8)-10 = 66
{9, 3, 1, 6, 2, 5, 7, 8, 4} ==> 9+(13*3/1)+6+(12*2)-5-11+(7*8/4)-10 = 66
{9, 3, 1, 6, 2, 5, 8, 7, 4} ==> 9+(13*3/1)+6+(12*2)-5-11+(8*7/4)-10 = 66
{9, 4, 8, 5, 6, 7, 3, 1, 2} ==> 9+(13*4/8)+5+(12*6)-7-11+(3*1/2)-10 = 66
{9, 4, 8, 5, 6, 7, 1, 3, 2} ==> 9+(13*4/8)+5+(12*6)-7-11+(1*3/2)-10 = 66
{9, 4, 1, 5, 2, 7, 8, 3, 6} ==> 9+(13*4/1)+5+(12*2)-7-11+(8*3/6)-10 = 66
{9, 4, 1, 5, 2, 7, 3, 8, 6} ==> 9+(13*4/1)+5+(12*2)-7-11+(3*8/6)-10 = 66
{9, 5, 3, 1, 4, 2, 7, 8, 6} ==> 9+(13*5/3)+1+(12*4)-2-11+(7*8/6)-10 = 66
{9, 5, 3, 1, 4, 2, 8, 7, 6} ==> 9+(13*5/3)+1+(12*4)-2-11+(8*7/6)-10 = 66
{9, 6, 4, 3, 5, 8, 7, 1, 2} ==> 9+(13*6/4)+3+(12*5)-8-11+(7*1/2)-10 = 66
{9, 6, 4, 3, 5, 8, 1, 7, 2} ==> 9+(13*6/4)+3+(12*5)-8-11+(1*7/2)-10 = 66
{9, 8, 6, 2, 4, 1, 7, 5, 3} ==> 9+(13*8/6)+2+(12*4)-1-11+(7*5/3)-10 = 66
{9, 8, 6, 2, 4, 1, 5, 7, 3} ==> 9+(13*8/6)+2+(12*4)-1-11+(5*7/3)-10 = 66
{9, 1, 4, 7, 6, 5, 3, 2, 8} ==> 9+(13*1/4)+7+(12*6)-5-11+(3*2/8)-10 = 66
{9, 1, 4, 7, 6, 5, 2, 3, 8} ==> 9+(13*1/4)+7+(12*6)-5-11+(2*3/8)-10 = 66
{9, 1, 2, 5, 6, 7, 4, 3, 8} ==> 9+(13*1/2)+5+(12*6)-7-11+(4*3/8)-10 = 66
{9, 1, 2, 5, 6, 7, 3, 4, 8} ==> 9+(13*1/2)+5+(12*6)-7-11+(3*4/8)-10 = 66