Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 08-11-2010 21:27:44

Fred
Administrateur
Inscription : 26-09-2005
Messages : 7 349

Les tiroirs

Bonjour,

  Une petite énigme arithmétique. 300 personnes sont devant 300 tiroirs, numérotés de 1 à 300.
* La première ouvre tous les tiroirs
* La seconde ferme les tiroirs pairs
* La troisième ouvre les tiroirs multiples de 3 qui sont fermés, et ferme les tiroirs multiples de 3 qui sont ouverts.
* La quatrième ouvre les tiroirs multiples de 4 qui sont fermés, et ferme les tiroirs multiples de 4 qui sont ouverts.
* La cinquième.....

Quand tout le monde est passé, quels sont les tiroirs ouverts?

Fred.

Hors ligne

#2 09-11-2010 00:15:59

karlun
Membre
Inscription : 05-05-2010
Messages : 216

Re : Les tiroirs

Bonsoir,

Je me disais: allez! juste un essai avant de compter d'autres moutons...

Je triche car c'est Python qui a tout fait ;-)

Voici le résultat:

300 300 [1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
le  1  ° tiroir est ouvert
le  4  ° tiroir est ouvert
le  9  ° tiroir est ouvert
le  16  ° tiroir est ouvert
le  25  ° tiroir est ouvert
le  36  ° tiroir est ouvert
le  49  ° tiroir est ouvert
le  64  ° tiroir est ouvert
le  81  ° tiroir est ouvert
le  100  ° tiroir est ouvert
le  121  ° tiroir est ouvert
le  144  ° tiroir est ouvert
le  169  ° tiroir est ouvert
le  196  ° tiroir est ouvert
le  225  ° tiroir est ouvert
le  256  ° tiroir est ouvert
le  289  ° tiroir est ouvert
Tous les autres sont fermés.

et voici le mini programme (y a plus mini sans doute).

# -*- coding: cp1252 -*-
n=300

    T=[0]*n
    for i in xrange(1,n+1):
        for j in xrange(1,n+1):
            if j%i==0:
                if T[j-1]==0:
                    T[j-1]=1
                else:
                    T[j-1]=0
    print j,i,T
    for k in xrange(1,n):
        if T[k-1]==1:
            print "le ",k," ° tiroir est ouvert"

Ça semble juste...

Dans la foulée, je me demande bien quel(s) est (sont) le(s) tiroir(s) le(s) plus usé(s) des glissières?

Maintenant, à mes moutons...

A+-*/

PS: Deux-trois lignes de programme en plus (qui n'apparaissent pas dans ce post) et on trouve qu'il n'y a qu'un seul tiroir plus usé des glissières que les autres. Lequel est-ce?  (suspens!!)  ;-)

Dernière modification par karlun (09-11-2010 07:27:10)

Hors ligne

#3 09-11-2010 09:50:32

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Les tiroirs

Salut karlun,

c'est dommage de le faire faire par l'ordi, c'est plus amusant de raisonner ... Par contre, ta question incidente est intéressante, et soluble par le même raisonnement.

Exemple : tiroir n° 100. 100 est divisible par : 1, 2, 4, 5, 10, 20, 25, 50, 100 => nombre de diviseur est impair, il est ouvert.

Sinon, il est fermé. Pex : le n° 13 est fermé (2 diviseurs) et 26 aussi (4 diviseurs).

Plus généralement, tout nombre entier positif compris entre 1 et 300 qui n'est pas un carré parfait a un nombre pair de diviseur, donc le tiroir correspondant est fermé.

Pour les carrés parfaits, le nombre est impair, donc le tiroir est ouvert.

Je reviens pour la question incidente.

Hors ligne

#4 09-11-2010 09:54:14

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : Les tiroirs

Bonjour,

Tu veux plus court ?
Voilà :

# usr/bin/env python
# -*- coding: Latin-1 -*-

n=301
T=[1]*n                                # La 1ere personne ouvre tous les tiroirs


for p in xrange(2,n):
    for t in xrange(p,n):
        if t%p==0:                     # Si le n° de tiroir est multiple de p
            T[t]=(1+T[t])%2            # Ouverture si fermé et fermeture si ouvert

for k in xrange(1,n):
    if T[k]==1:
        print "Le tiroir n°","%3i" % k,"est ouvert"

Affichage :

Le tiroir n°   1 est ouvert
Le tiroir n°   4 est ouvert
Le tiroir n°   9 est ouvert
Le tiroir n°  16 est ouvert
Le tiroir n°  25 est ouvert
Le tiroir n°  36 est ouvert
Le tiroir n°  49 est ouvert
Le tiroir n°  64 est ouvert
Le tiroir n°  81 est ouvert
Le tiroir n° 100 est ouvert
Le tiroir n° 121 est ouvert
Le tiroir n° 144 est ouvert
Le tiroir n° 169 est ouvert
Le tiroir n° 196 est ouvert
Le tiroir n° 225 est ouvert
Le tiroir n° 256 est ouvert
Le tiroir n° 289 est ouvert

Je cherche maintenant à coder la 1ere partie (double boucle) sur une ligne : c'est fait, mais les résultats sont faux !

Si on raisonne, on voit vite
* que la p_ième personne ne s'occupera que des tiroirs t tels que t >= p
* que tous les tiroirs dont les n°s sont premiers seront fermés..., que le 1 sera ouvert et le dernier fermé, sauf si ce dernier est le n °100, 400, 900...

@+

[EDIT]
Je dirais même plus, vérification expérimentale du "théorème de freddy"...
Avec 1000 tiroirs et 1000 personnes :

Le tiroir n°   1 =  1² est ouvert
Le tiroir n°   4 =  2² est ouvert
Le tiroir n°   9 =  3² est ouvert
Le tiroir n°  16 =  4² est ouvert
Le tiroir n°  25 =  5² est ouvert
Le tiroir n°  36 =  6² est ouvert
Le tiroir n°  49 =  7² est ouvert
Le tiroir n°  64 =  8² est ouvert
Le tiroir n°  81 =  9² est ouvert
Le tiroir n° 100 = 10² est ouvert
Le tiroir n° 121 = 11² est ouvert
Le tiroir n° 144 = 12² est ouvert
Le tiroir n° 169 = 13² est ouvert
Le tiroir n° 196 = 14² est ouvert
Le tiroir n° 225 = 15² est ouvert
Le tiroir n° 256 = 16² est ouvert
Le tiroir n° 289 = 17² est ouvert
Le tiroir n° 324 = 18² est ouvert
Le tiroir n° 361 = 19² est ouvert
Le tiroir n° 400 = 20² est ouvert
Le tiroir n° 441 = 21² est ouvert
Le tiroir n° 484 = 22² est ouvert
Le tiroir n° 529 = 23² est ouvert
Le tiroir n° 576 = 24² est ouvert
Le tiroir n° 625 = 25² est ouvert
Le tiroir n° 676 = 26² est ouvert
Le tiroir n° 729 = 27² est ouvert
Le tiroir n° 784 = 28² est ouvert
Le tiroir n° 841 = 29² est ouvert
Le tiroir n° 900 = 30² est ouvert
Le tiroir n° 961 = 31² est ouvert

Seuls les carrés sont ouverts...

Dernière modification par yoshi (09-11-2010 17:54:01)

Hors ligne

Pied de page des forums