ENIGMES

Auteurs célèbres

Werber

Suite pyramidale


Continuez cette suite logigue:
1
11
21
1211
111221
312211
13112221
.............
Indice 1
Indice 2
Indice 3
Réponse

Il faut lire ce qui est écrit groupe de chiffres par groupe de chiffres et l'écrire.
Ainsi 11 se lit deux un et on écrit donc 21 sur la ligne suivante.
21 se lit un 2 un 1 et on écrit donc 1211 sur la ligne suivante.
111 se lit trois 1 et on écrit 31 sur la ligne suivante.
donc ici la ligne suivante est : 1113213211
Je crois qu'on peut pas aller jusqu'à "4".

En effet, on ne peut pas aller jusqu'à 4.
Raisonnons par récurrence.
Soit P(n) : "Une ligne numéro n est formé d'une suite de 1, 2 ou 3. Il n'y a pas plus de trois fois consécutives un même chiffre dans la ligne."
On vérifie facilement que P(1) et P(2) sont vérifiées.
Supposons P(n) vraie et montrons que P(n+1) l'est.
Par construction, la ligne n+1 prends bien la forme la forme d'une suite de coupe xi yi (x1 y1 x2 y2 ...) où chaque y désigne un chiffre apparaissant dans la ligne n et x le nombre de fois où il apparaît consécutivement.
Comme la ligne n ne contient que des 1, 2 ou 3, y ne peut prendre comme valeur que 1, 2 ou 3.
Comme il n'y a pas plus de trois fois consécutives un même chiffre à la ligne n, x ne peut prendre comme valeur que 1, 2 ou 3.
Il reste donc à démontrer que la ligne n+1 ne contient pas trois fois consécutives un même chiffre.
Pour que la ligne n+1 contienne une suite a a a a (où a représente 1, 2 ou 3), d'après notre construction en couple x y où x et y sont entre un, deux ou trois, il faut qu'au moins deux y de suite prennent la même valeur. Or cela n'est pas possible car deux y de suites désignent deux groupes de chiffres consécutifs dans la ligne n : s'ils sont identiques il s'agit du même groupe et la ligne n+1 est mal construite.
Donc P(n+1) est vrai.
Donc P(n) est vrai pour tout n supérieur où égal à 1.
Donc on n'aura jamais de chiffre 4.
(Merci Pulpe et Jeff)

L'âge des filles


Un facteur apporte une lettre à un homme père de 3 filles.
Il demande l'âge des filles.
Le pere lui dit que le produit des âges vaut 36 et que la somme des âges est égale au numéro de la maison d'en face.
Le facteur se retourne, regarde le numéro et dit :
"Ca ne me suffit pas."
Le père rajoute alors :
"La plus jeune est blonde."
Quel est l'âge des filles ?

Indice 1
Indice 2
Indice 3
Réponse

Il existe huit possibilités pour que le produit des ages fassent 36 :
2x2x9 ou 3x3x4 ou 2x3x6 ou 1x6x6 ou 36x1x1 ou 18x2x1 ou 9x4x1 ou 1x12x3.
Comme le père connaît le numéro de la maison d'en face et que ça ne lui suffit pas, il s'agit donc soit de 9,2,2 soit de 6,6,1 pour lesquels les sommes sont identiques (et font 13).
Et la bonne réponse est donc 1 an, 6ans et 6 ans car il n'y en a qu'une seule plus jeune.
(Merci Romain)

Jeu d'allumettes


Vous pouvez jouer au jeu des allumettes presque n'importe où, il suffit de trouver un adversaire. (au restaurant par exemple)

Prenez tout d'abord 16 allumettes, batonnets ou cures-dents.
Disposez-les en 4 colonnes comme ci dessous :


Chacun leur tour, les joueurs retirent des alumettes.
Les deux seules règles pour le retrait de ces alumettes sont de ne retirer que des alumettes faisant partie d'une même colonne et d'en retirer au moins une.

Le joueur qui prend la dernière allumette a perdu.

Il est possible de gagner à tous les coups. Essayez de trouver une méthode pour cela !

Indice 1
Réponse

Pas de méthode simple trouvée pour l'instant.

Mais l'algorithme suivant est capable de gagner systématiquement contre vous :

# Stocke le nombre d'allumettes restants dans chaque rangées
def int[] plateau = new int[] { 7, 5, 3, 1 };

def funtion boolean estSituationGagnante() {
__si nombreDAllumettesRestantes(plateau) == 1 :
____retourner faux;
__Pour idColonne dans [0; plateau.length[ :
____Pour nbAlumettes dans [1; plateau[idColonne]] :
______def boolean choixGagnantPourLAdversaire = faux;
______ # On modifie temporairement le plateau comme si on avait joue
______plateau[idColonne] -= nbAlumettes;
______ # On fait la récurrence
______choixGagnantPourLAdversaire = estSituationGagnante();
______plateau[idColonne] += nbAlumettes; # On remet le plateau dans la situation initiale
______ # Si c'est un mauvais choix pour l'adversaire, c'est le bon choix
______si ( ! choixGagnantPourLAdversaire ) :
________retourner vrai;
__retourner faux;
}

def function void faireJouerIA() {
__Pour idColonne dans [0; plateau.length[ :
____Pour nbAlumettes dans [1; plateau[idColonne]] :
______plateau[idColonne] -= nbAlumettes; # On fait jouer l'IA
______si estSituationGagnante() :
________retourner;
______plateau[idColonne] += nbAlumettes; # On annule puisque ce n'était pas un bon choix
__ # Si jamais on n'a pas trouvé de situation gagnante à coup sûr
__ # on tire aléatoirement un choix.
__ # Puisque le second joueur peut gagner à coup sûr on ne passe jamais dedans
__ # mais si vous voulez faire jouer l'IA en premier ça pourrait être utile ^^.
__retourner choixColonneEtQuantiteAleatoirement();
}

main() {
__def boolean tourDuJoueurReel = true;
__tant que ( nombreDAllumettesRestantes(plateau) > 1 ) :
____int idColonne, quantiteDAlumettesARetirer;
____afficher(plateau);
____si tourDuJoueurReel :
______faire :
________idColonne, quantiteDAlumettesARetirer = demanderChoixJoueur();
______tant que ( ! estChoixValide(idColonne, quantiteDAlumettesARetirer) );
______plateau[idColonne] -= quantiteDAlumettesARetirer;
____sinon :
______faireJouerIA();
__si (tourDuJoueurReel) :
____afficher("Perdu");
__sinon :
____afficher("Gagner");
}

Le cercle et son centre


Comment tracer un cercle et son point central sans jamais lever le crayon ?



Réponse

L'énoncé stipule qu'il s'agit d'un cercle et non de tout cercle,
on peut donc prendre le cas particulier d'un cercle de rayon nul,
ainsi il suffit de dessiner un unique point pour résoudre le problème.
(Merci Carnage)

Plier la feuille.

En utilisant un feutre ou un stylo.
(Merci Pulpe)
1 184 555 visites
Site sans pub Site valid html 4.01