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 26-04-2014 15:37:49

Jeff
Invité

base

Bonjour aux amatheurs de ce forum,
Je n'ai pas la solution à ce problème, pire, je ne vois pas comment faire pour aborder sa résolution...


Il faut 6 chiffres pour m'écrire en base 23
Il faut 7 chiffres pour m'écrire en base 15
Il faut 8 chiffres pour m'écrire en base 10
Il faut 16 chiffres pour m'écrire en base 3
Il faut 26 chiffres pour m'écrire en base 2
Et je suis le plus petit dans mon genre.

Qui suis-je hexactement ?

Merci de votre aide.

#2 26-04-2014 20:48:02

totomm
Membre
Inscription : 25-08-2011
Messages : 1 093

Re : base

Bonsoir,

proposition

[tex]2^{25} = 33554432[/tex]

Hors ligne

#3 26-04-2014 21:49:59

pipo
Membre
Inscription : 28-02-2014
Messages : 17

Re : base

salut

idée

 
personnellement j'ai utilisé la methode brute , j'ai créé un petit programme sur python (ps il peut y avoir des fautes parce que je suis un petit peu pressé mais le principe est bon )
def base(n,b):
    r=0
    c=[]
    while n>0:
        r=n%b
        c=c+[r]
        n=n//b
    return len(c)

a=0
while base(a,23)!=6 and base(a,15)!=7 and base(a,10)!=8 and base(a,3)!=16 and base(a,2)!=26:
    a=a+1
bref je trouve a=6436343
le code n'est pas du tout optimisé et il est super long mais voila j'espere juste t'avoir aidé a comprendre le principe bonne chance

Dernière modification par pipo (26-04-2014 21:50:40)

Hors ligne

#4 27-04-2014 08:05:58

totomm
Membre
Inscription : 25-08-2011
Messages : 1 093

Re : base

Bonjour,

Le nombre donné par Pipo devrait s'écrire avec 8 chiffres puisqu'il est écrit en base 10 !

Hors ligne

#5 27-04-2014 11:01:20

pipo
Membre
Inscription : 28-02-2014
Messages : 17

Re : base

totomm a écrit :

Bonjour,

Le nombre donné par Pipo devrait s'écrire avec 8 chiffres puisqu'il est écrit en base 10 !

ah oui c'est vrai je ne sais pas pourquoi je n'y ai pas fait attention !mais un simple petit correctif pourrait rendre le petit programme viable (je ne peux le tester car je ne suis pas chez moi )

Hors ligne

#6 27-04-2014 12:11:55

jpp
Membre
Inscription : 31-12-2010
Messages : 1 170

Re : base

salut.

totomm

qu'en penses-tu? la question est bizarrement écrite "hexactement"         [tex]2^{25}[/tex] s'écrirait 2.000.000  en base 16, toujours en considérant que [tex]2^{25}[/tex] est le plus petit nombre contenant 26 chiffres en binaire

la réponse attendue devrait sans doute être exprimée en base 16

Hors ligne

#7 27-04-2014 13:01:00

pipo
Membre
Inscription : 28-02-2014
Messages : 17

Re : base

correction du 1er test

salut j'ai réessayé le programme je m'étais trompé en entrant les bases lors du premier essai ;je trouve 43046720 il contient 8 chiffre en base 10 ,26 en base 2 ,16 en base 3,7 en base 15et 6 en base 23 [

Dernière modification par pipo (27-04-2014 13:03:14)

Hors ligne

#8 27-04-2014 13:13:04

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

Re : base

Bonjour,

Mon raisonnement

Je suis le plus petit dans mon genre

Je suis donc parti de la base 2 : le plus petit nombre à  26 chiffres en base 2 est 10000000000000000000000000...
En base 3  :  2100010202000202  --> : 16  chiffres
En base 10 : 33554432 --> 8 chiffres
en base 15 : 2E2C0C2  --> 7 chiffres
En base 23 : 54KIL8     --> 6 chiffres

Et la réponse à donner en base 16 est : 2000000

Pourquoi ai-je la quasi-certitude (99,9 %) que ce soit le bon résultat ?
Aucune des autres "écritures" en base autre que 2 n'est le plus petit nombre, mais si je remplace leur 2 ou le 8 final par 1 ou 7, ces écritures gardent le même nombre de "chiffres", par contre le nombre écrit en base 2 n'en a plus lui que 25...
C'est pourquoi je suis parti de la base 2.
Donc aucune autre écriture "unique en son genre" dans les autres bases avec le nombre de chiffres demandé, ne donne une écriture à 26 chiffres en base 2.
Cela dit, quel que soit le nombre, il est unique...  en son genre !

@+

Dernière modification par yoshi (27-04-2014 13:50:39)

Hors ligne

#9 27-04-2014 17:02:06

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

Re : base

Salut,

je suis OK avec yoshi !

Hors ligne

#10 30-04-2014 09:50:55

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

Re : base

Re,

Hello Jeff ? Toujours vivant ?

@+

Hors ligne

#11 30-04-2014 18:41:52

Jeff
Invité

Re : base

Oui, yoshi !
La réponse est bonne.
Vraiment très fort !
Merci.

#12 06-05-2014 14:35:54

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

Re : base

Salut,

Dans le programme de pipo, ne faudrait-il pas plutôt mettre des "ou" à la place des "et"?

Hors ligne

#13 06-05-2014 15:02:32

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

Re : base

Re,

le prog de pipo est faux au delà de la base 10 : c'est dans la fonction que ça coince...

La preuve
def base(n,b):
    r=0
    c=""
    while n>0:
        r=n%b
        c=c+str(r)
        n=n//b
    return len(c)

b=33554432
L=[2,3,10,15,23]
print "Longueur de",b
for bs in L:
    c=base(b,bs)
    print "en base","%2i" % bs,":","%2i" % c

Et les sorties:

Longueur de 33554432
en base  2 : 26
en base  3 : 16
en base 10 :  8
en base 15 : 10
en base 23 :  9

@+

Hors ligne

#14 06-05-2014 20:51:21

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

Re : base

Re,

Ce prog calcule les bonne longueurs :
L,n=[2,3,10,15,23],33554432
print "Longueur de",n
for bs in L:
    fin,cpt,n=0,0,33554432
    nb=n
    while not fin :
        n=n//bs
        fin=(n<bs)
        cpt+=1      
    print "en base","%2i" % bs,":","%2i" % (cpt+(nb>=bs))

La preuve:

Longueur de 33554432
en base  2 : 26
en base  3 : 16
en base 10 :  8
en base 15 :  7
en base 23 :  6

ou bien plus propre, plus court et plus rapide :

from math import(log)

L,n=[2,3,10,15,23],33554432
print "Longueur de",n
for bs in L:
    print "en base","%2i" % bs,":","%2i" %(int(log(n)/log(bs))+(n>=bs))

Je testerai demain si avec ça et en partant de 1 on trouve le bon nombre...  Un peu de suspense ! ^_^

Pour ce soir, Morphée m'attend...

@+

Dernière modification par yoshi (06-05-2014 21:40:16)

Hors ligne

#15 07-05-2014 10:19:47

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

Re : base

Bonjour,


Alors, j'ai un peu abrégé mes souffrances, je ne suis pas parti de 1  mais du plus petit nombre qui s'écrit avec 6 chiffres en base 23
100000 soit 6436343 en base 10.


from math import log

def longueurs(n,LG):  
    for bs in [2,3,10,15,23]:
        LG.append((int(log(n)/log(bs))+(n>=bs)))
    return LG

n=6436343
while 1:
    L=longueurs(n,[])
    if L==[26,16,8,7,6]:
        break
    else:
        n+=1      
        L=[]
   
print "Le nombre cherché est",n

Sortie

Le nombre cherché est 33554432

On doit pouvoir raccourcir un peu plus le temps d'attente...

@+

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
cinquante six plus soixante trois
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums