40 kgs à peser

Olympiades mathématiques, énigmes et défis
nicodil
Messages: 4
Enregistré le: 17 Aoû 2006, 16:16

40 kgs à peser

par nicodil » 17 Aoû 2006, 16:22

Bonjour,
Une énigme dont je n'ai pas la solution (ni surtout le raisonnement) :
En utilisant une balance à plateaux : déterminer 4 étalons (en entiers de kgs) de façon à pouvoir mesurer univoquement toute masse (entière en kgs) inférieure ou égale à 40kgs.
Moi, j'arrive pas... :cry:



aviateurpilot
Membre Irrationnel
Messages: 1772
Enregistré le: 01 Juin 2006, 21:33

par aviateurpilot » 17 Aoû 2006, 16:49

tu veux trouve 4 entiers .tel que
quelque soit k entre 1 et 40
ils existent {} ; k=aa'+bb'+cc'+dd'

nicodil
Messages: 4
Enregistré le: 17 Aoû 2006, 16:16

par nicodil » 17 Aoû 2006, 17:05

effectivement, c'est un beau début. Celui-là, je l'avais. Mais pour la résolution, ça se passe comment? Algèbre linéaire?

aviateurpilot
Membre Irrationnel
Messages: 1772
Enregistré le: 01 Juin 2006, 21:33

par aviateurpilot » 17 Aoû 2006, 17:12

le nombre des (a',b',c',d'), tel que aa'+bb'+cc'+dd' soit positif
est

nicodil
Messages: 4
Enregistré le: 17 Aoû 2006, 16:16

par nicodil » 17 Aoû 2006, 17:16

j'avoue humblement que :
1/ je ne vois pas comment tu trouves cela
2/ je ne vois pas non plus comment ça m'aide
Allez, déroule!

aviateurpilot
Membre Irrationnel
Messages: 1772
Enregistré le: 01 Juin 2006, 21:33

par aviateurpilot » 17 Aoû 2006, 17:30

dans le 1er post j'ai mathematisé le probleme.(peux etre que cela vous eclair)
dans le 2eme post j'ai verifies si on peux trouver 40 nombres positifs avec 4 nombres (j'ai verifie si ton probleme peux avoir une solution,car il y a des probleme qui n'ont pas de solution, par exemple si on t'a dit de resoudre ça:
déterminer 4 étalons (en entiers de kgs) de façon à pouvoir mesurer univoquement toute masse (entière en kgs) inférieure ou égale à 41kgs.

)
ce que j'ai fait dans mon 2eme post montrer ce exemple n'a pas de solution.

aviateurpilot
Membre Irrationnel
Messages: 1772
Enregistré le: 01 Juin 2006, 21:33

par aviateurpilot » 17 Aoû 2006, 17:57

1er indice

puisque le nombre des (a',b',c',d'), tel que aa'+bb'+cc'+dd' soit positif est 40
alors on va utilisé tous ces possiblités pour touver les nombre
soit E={}

on veux que cardE=40, avec maxE=40
or max E=a+b+c+d


olivthill
Membre Relatif
Messages: 349
Enregistré le: 21 Avr 2006, 17:17

par olivthill » 18 Aoû 2006, 20:16

La solution est d'avoir des poids de 1, 3, 9, et 27 kg :

1=1 + 0 + 0 + 0
2=-1 + 3 + 0 + 0
...
13 = 1 + 3 + 9 + 0
14 = -1 + -3 + -9 + 27
15 = 0 + -3 + -9 + 27
16 = 1 + -3 + -9 + 27
17 = -1 + 0 + -9 + 27
18 = 0 + 0 + -9 + 27
19 = 1 + 0 + -9 + 27
20 = -1 + 3 + -9 + 27
...
39 = 0 + 3 + 9 + 27
40 = 1 + 3 + 9 + 27

Pour trouver ces valeurs, j'ai écrit un petit programme VBA pour Excel :
Code: Tout sélectionner
Sub Pese40()
   ' Probleme :
   ' En utilisant une balance à plateaux
   ' Déterminer 4 étalons (en entiers de kgs) de façon
   ' à pouvoir mesurer univoquement toute masse (entière en kgs)
   ' inférieure ou égale à 40 kgs.
   '
   ' z = ap + bq + cr + ds   0 < z < 41
   ' avec 0 < a < 41 ;  0 < b < 41 ;  0 < c < 41 ;  0 < d < 41
   ' p = -1 ou 0 ou 1 et pareil pour q, r, et s.

   max_kg = 40
   For z = 1 To max_kg
      Range("A" & CStr(z)).Value = z
   Next z
   
   For a = 1 To 50
      Range("E1").Value = a
   For b = a + 1 To 50
      Range("E2").Value = b
   For c = b + 1 To 50
      Range("E3").Value = c
   For d = c + 1 To 50
      Range("E4").Value = d
      ok_f = True
      For z = 1 To max_kg
          For p = -1 To 1
          For q = -1 To 1
          For r = -1 To 1
          ok_f2 = False
          For s = -1 To 1
             If (z = a * p + b * q + c * r + d * s) Then
                Range("B" & CStr(z)).Value = CStr(a * p) _
                                   & " + " & CStr(b * q) _
                                   & " + " & CStr(c * r) _
                                   & " + " & CStr(d * s)
                ok_f2 = True
                Exit For
             End If
          Next s
          If (ok_f2 = True) Then Exit For
          Next r
          If (ok_f2 = True) Then Exit For
          Next q
          If (ok_f2 = True) Then Exit For
          Next p
          If (ok_f2 = False) Then
             Range("B" & CStr(z)).Value = "pas de solution"
             ok_f = False
             Exit For
         End If
      Next z
      If (ok_f = True) Then Exit For
   Next d
   If (ok_f = True) Then Exit For
   Next c
   If (ok_f = True) Then Exit For
   Next b
   If (ok_f = True) Then Exit For
   Next a
End Sub

nicodil
Messages: 4
Enregistré le: 17 Aoû 2006, 16:16

par nicodil » 30 Aoû 2006, 15:59

Grazie!! Là au moins c clair.
Il y aurait une méthode (matheuse) de décomposition en base 3 que ça ne m'étonnerait pas...

scelerat
Membre Relatif
Messages: 397
Enregistré le: 03 Aoû 2005, 13:37

par scelerat » 31 Aoû 2006, 09:33

nicodil a écrit:Grazie!! Là au moins c clair.
Il y aurait une méthode (matheuse) de décomposition en base 3 que ça ne m'étonnerait pas...

Evidemment. Tout nombre peut s'ecrire en base 3 avec les chiffres 0, 1, et 2. Comme 2 est congru a -1 modulo 3, tout nombre peut s'ecrire comme une somme de puissances de 3 affectees des coefficients 1 ou -1.

Patastronch
Membre Irrationnel
Messages: 1345
Enregistré le: 22 Aoû 2005, 23:53

par Patastronch » 31 Aoû 2006, 12:41

scelerat a écrit:Evidemment. Tout nombre peut s'ecrire en base 3 avec les chiffres 0, 1, et 2. Comme 2 est congru a -1 modulo 3, tout nombre peut s'ecrire comme une somme de puissances de 3 affectees des coefficients 1 ou -1.


Par contre ca prouve pas l'unicité de la base 3 pour résoudre le problème.

Retourner vers ⚔ Défis et énigmes

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite