VIDEO. Epreuve de maths: «C’est pas facile!», on a posé une colle à Cédric Villani

La 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