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).

#301 Re : Enigmes, casse-têtes, curiosités et autres bizarreries » Romeo et Juliette version 2009 - I » 30-07-2009 12:12:30

Re,

damned! j'avais lu 1500 metre au lieu de 4km.. cette fois on a f(x)=[tex]10+\sqrt{1500²+{\left(4000-x\right)}^{2}}+\sqrt{x²+500²}[/tex] il ya plusieurs minimum.. dont RD + DC + CJ=4482 metres..  0_°

#302 Re : Enigmes, casse-têtes, curiosités et autres bizarreries » Romeo et Juliette version 2009 - I » 30-07-2009 11:25:34

Hello

Je trouve une valeure de 2,51km pour un pont bâtit à 375 métres de la perpendiculaire à(D1) passant par j ?

++

#303 Re : Enigmes, casse-têtes, curiosités et autres bizarreries » Problème de 5e... » 30-07-2009 08:14:55

Re,

Aveuglé par la simplicité, 1,5*30 qui de gauche comme de droite vaut toujours bien 45!

Ah+

#304 Re : Enigmes, casse-têtes, curiosités et autres bizarreries » Problème de 5e... » 29-07-2009 22:21:38

Salut,

Alors je trouve [tex]2\sum^{\infty }_{x=1}\frac{600}{40\left({2}^{x}\right)}[/tex]+15 qui vaut quelques 44,0625 km..XD

: s

#305 Re : Enigmes, casse-têtes, curiosités et autres bizarreries » Le col et le cycliste » 29-07-2009 19:11:53

jour'

Oui, Quoique le sens commun etant de dire que même en roulant à la vitesse de la lumiere il n'y arriverait pas, synonyme d'impossibilité On arive en effet à T1=T1+T2.Il ne fallait pas tomber dans le piege des 30km/h..

@+

#306 Enigmes, casse-têtes, curiosités et autres bizarreries » Le col et le cycliste » 29-07-2009 17:41:02

Golgup
Réponses : 4

Bonjour !

cycliste.png

Le tour de France ayant révéler une forte passion chez  notre ami cycliste, celui-ci décide de s’entrainer un peu en s’attaquant au col des Alpes d’Huez -> 9%, arrivé en haut il calcul une vitesse moyenne de 10 petits malheureux km/h. Déçu, il entreprend de rentrez assez vite pour avoir une vitesse moyenne de 20km/h.

A quelle vitesse doit-t-il rouler au retour ?

+

#307 Re : Programmation » [Python] Identité de Bachet-Bezout. » 12-07-2009 18:30:12

sveiki!!(Excusez le retard)

OOlala c'est vrai que ce n'est pas tres joli! mais pourquoi ai-je donc créé cette fonction modulo?! m'enfin le problème est résolu et j'en est profité aussi pour ameliorer mes 3 autres prog.

Si jamais, la methode utilisée et celle que j'avais décrite ici http://www.bibmath.net/forums/viewtopic.php?id=2312

En tous cas merci à Barbichu et Yoshi!!

bye

#308 Re : Programmation » [Python] fabrication de clefs rsa » 30-06-2009 08:51:30

Re,

J'en profite pour dire à Fred que son applet http://www.bibmath.net/crypto/moderne/rsa.php3 donne des exposants de dechiffrement negatif! Le probleme serait vite réglé en conditionnant sa négativité et en y remediant: d=d-(p-1)(q-1)*-1

bye

#309 Programmation » [Python] fabrication de clefs rsa » 29-06-2009 10:06:23

Golgup
Réponses : 1

Aller, je vous embête une derniere fois et vous propose ce code de generation de clefs rsa pour les interessés!

from math import log
from random import*
def teun(s,f=0,t1=[]):
    while s!=f:
        s-=f
        c=int(log(s)/log(2))
        f=2**c
        t1.append(c)
    return t1

a=2
def tdeux(p,a,u=0,z=a,j=a,t2=[a]):
    while u!=t1[0]:
        z=j**2%p
        j=z
        u+=1
        t2.append(z)
    return t2

def tetrois(t3=[],o=-1):
    while o<len(t1)-1:
        o+=1
        t3.append(t2[t1[o]])
    return t3

print"                                                                  *Generateur de clefs RSA*"
print""
print""
b=input('Entrez a taille de la clef en bits:')
print"------------------------------------------------------------------------"
print""
p=1
while p<2**int((b+1)/2):
    p=randrange(2**int((b-1)/2),2**int((b+1)/2))
    if p%2==0:
        p=p+1
    s=p-1
    t1=teun(s,f=0,t1=[])
    t2=tdeux(p,a,u=0,z=a,j=a,t2=[a])
    t3=tetrois(t3=[],o=-1)
    m=reduce(lambda x, y: x *y, t3)%p
    if m==1:
        break
q=1
while q<2**int((b+1)/2):
    q=randrange(2**int((b-1)/2),2**int((b+1)/2))
    if q%2==0:
        q=q+1
    s=q-1
    teun(s,f=0,t1=[])
    t1=teun(s,f=0,t1=[])
    tdeux(q,a,u=0,z=a,j=a,t2=[a])
    t2=tdeux(q,a,u=0,z=a,j=a,t2=[a])
    tetrois(t3=[],o=-1)
    t3=tetrois(t3=[],o=-1)
    m=reduce(lambda x, y: x *y, t3)%q
    if m==1:
        break
   
n=p*q
e=2**16+1
phi=(p-1)*(q-1)

def pgcd(a,b):
    try:
        while b!=0:
            a=a%b
            b=b%a
        return a
    except:
        return b

def t1_t2(a,b):
    try:
        while b!=0:
            a=a%b
            t1.append(a)
            t2.append(b/a)
            b=b%a
            t1.append(b)
            t2.append(a/b)
        return t2
    except:
        return t2

def xk(l=1,xk=[1,0,1]):
    while l!=len(t1)-2:
        l+=1
        xk.append(t2[l-1]*xk[len(xk)-1]+xk[len(xk)-2])
    return xk
       
while pgcd(e,phi)!=1:
    e+=2
if pgcd(e,phi)==1:
    t1,t2=[e,phi],[e/phi]
    t2=t1_t2(e,phi)
    xk=xk(l=1,xk=[1,0,1])
    d=((-1)**(len(t1)-2))*xk[len(xk)-2]
    if d<0:
        d=d-phi*-1

p='?'
q='?'
phi='?'
                               

print"                                                  Clef publique:"
print""
print 'n','=',n
print 'e','=',e
print""
print"------------------------------------------------------------------------"
print""
print"                                                  Clef privée:"
print""
print 'd','=',d
print""
print"------------------------------------------------------------------------"

Si vous voulez connaître les 2 composants de n ainsi que phi(n) ou encore vérifier que ed=1 mod phi, supprimez juste ces lignes

p='?'
q='?'
phi='?'

@+++

#310 Programmation » [Python] Identité de Bachet-Bezout. » 28-06-2009 21:08:46

Golgup
Réponses : 4

iHola!

J'ajoute à la collection ce ptit programme qui trouve donc u et v tq au+bv=pgcd(a,b) plus les solutions generales!

def pgcd(a,b):
    try:
        while b!=0:
            a=a%b
            b=b%a
        return a
    except:
        return b

def t1_t2(a,b):
    try:
        while b!=0:
            a=a%b
            t1.append(a)
            t2.append(b/a)
            b=b%a
            t1.append(b)
            t2.append(a/b)
        return t2
    except:
        return t2
   
print"                                                               *Recherche (a,b) <=> au+bv=gcd(a,b)*"            
a=input('Entrez a:')
b=input('Entrez b:')
t1,t2=[a,b],[a/b]
t2=t1_t2(a,b)
l,xk,yk=1,[1,0,1],[0,1,t2[0]]

while l!=len(t1)-2:
    l=l+1
    xk.append(t2[l-1]*xk[len(xk)-1]+xk[len(xk)-2])
    yk.append(t2[l-1]*yk[len(yk)-1]+yk[len(yk)-2])
   
print"*Solution particuliere:*"
print ""
print a,'*',((-1)**(len(t1)-2))*xk[len(xk)-2],'+',b,'*',((-1)**(len(t1)-1))*yk[len(yk)-2],'=',pgcd(a,b)
print""
print"*Solution generale:*"
print ""
print 'u_k','=',((-1)**(len(t1)-2))*xk[len(xk)-2],'+',xk[len(xk)-1],'k'
print 'v_k','=',((-1)**(len(t1)-1))*yk[len(yk)-2],'-',yk[len(yk)-1],'k'

++

#312 Programmation » [Python] test de primarité probabiliste » 19-06-2009 16:19:28

Golgup
Réponses : 0

Rebonjour,

Le prog de mon post d'avant comprenait une erreur ; celui-ci marche maintenant très bien. C'est le test de Miller Rabin où k est le nombre de fois où l'on veut répéter l'algorithme pour une probabilité d'erreur < (1/4)^k (voir tableau).
A titre indicatif, il met 2 minutes pour un nombre de 2048 bits et pour k=6 (c'est la borne fréquemment utilisée en cryptographie) puis 1 minute pour k=3..etc

from math import log  

def DivPuiss(n,v,t1=[]):
    while v%2==0:
        v=v/2
        t1.append(v)
    return len(t1)

def pgcd(a,n):
    try:
        while n!=0:
            a=a%n
            n=n%a
        return a
    except:
        return n
a=1

def tdeux(d,f=0,t2=[]):
    while d!=f:
        d=d-f
        c=int(log(d)/log(2))
        f=2**c
        t2.append(c)
    return t2


def fabrkttroiquatr(a,t3=[a],t4=[],p=-1,u=0,j=a,z=a):
    while u!=t2[0]:
        z=j**2%n
        j=z
        u+=1
        t3.append(z)
    while p<len(t2)-1:
        p+=1
        t4.append(t3[t2[p]])
    return reduce(lambda x, y: x *y,t4)%n

t5=[]
n=input('Entrez un nombre>3 impair:')

print '                                       ************************'
print '                                       *|  k  |  Probabilité |*'
print '                                       *|--------------------|*'                            
print '                                       *|  1  |     4^-1     |*'                                
print '                                       *|--------------------|*'                                        
print '                                       *|  2  |     4^-2     |*'                                  
print '                                       *|--------------------|*'
print '                                       *|  3  |     4^-3     |*'
print '                                       *|--------------------|*'
print '                                       *|  4  |     4^-4     |*'
print '                                       *|--------------------|*'
print '                                       *|  5  |     4^-5     |*'
print '                                       *|--------------------|*'
print '                                       *|  6  |     4^-6     |*'
print '                                       ************************'

k=input('Entrez la borne k<n:')
v=n-1
s=DivPuiss(n,v,t1=[])
d=(n-1)/(2**s)
t2=tdeux(d,f=0,t2=[])
for i in range(1,k):
    a=a+1
    if pgcd(a,n)!=1:
        t5.append(0)
        break
    elif pgcd(a,n)==1:
        e,l=fabrkttroiquatr(a,t3=[a],t4=[],p=-1,u=0,j=a,z=a),0
        if s==1 and e==n-1:
            t5.append(1)
        elif e==1:
            t5.append(1)
        else:
            while e!=n-1:
                f=e
                e=f**2%n
                l=l+1
                if e==n-1:
                    t5.append(1)
                    break
                if l==s:
                    t5.append(0)
                    break

def verif(t5,w=-1):
    while w!=len(t5)-1:
        w=w+1
        if t5[w]==0:
            return 'Ce nombre est composé !'
            break
        elif w==len(t5)-1:
            return 'Ce nombre est premier !'

print verif(t5,w=-1)

#315 Programmation » [Python] expo modulaire » 13-06-2009 16:05:37

Golgup
Réponses : 7

Bonjour,

Ci dessous un programme d'exponentiation modulaire qui, rappelons le calcul rapidement a^s[n] avec a et s tres grand.(merci à Yoshi pour son aide a la fin

from math import log

a=input('Entrez la base a:')
s=v=input('Entrez la puissance s:')
n=input ('Entrez le module n:')

f=u=0
t1,t2,t3,p=[],[a],[],-1
j=z=a

while s!=f:
    s-=f
    c=int(log(s)/log(2))
    f=2**c
    t1.append(c)
while u!=t1[0]:
    z=j**2%n
    j=z
    u+=1
    t2.append(z)
while p<len(t1)-1:
    p+=1
    t3.append(t2[t1[p]])

print a,'^',v,'(mod',n,')','=', reduce(lambda x, y: x *y, t3)%n

ex:

398739982207337^18385708273137722392365558530530732883 (mod 32401410322810681)=12322382122411856

@+

#316 Re : Programmation » python, fonction produit » 13-06-2009 15:46:50

Merci,je pensais que la commande directe si elle existe serait plus rapide, mais cette façon va tres bien

a++

#317 Re : Programmation » python, fonction produit » 13-06-2009 14:31:05

Re,

ex:
t1=[1,2,3,7,5]
sum(t1)=18

et je demande si il existe une fonction produit <=>produit(t1)=210
merci

++

#318 Re : Programmation » python, fonction produit » 13-06-2009 12:05:24

BONJOUR,
Merci yoshi mais c''est de Python dont je parle.

+

#319 Programmation » python, fonction produit » 13-06-2009 11:17:06

Golgup
Réponses : 27

Bjr,

Je sais qu'il existe la fonction sum, existe t-il l'equivalent pour la fonction produit?

; )

#322 Programmation » [Python] Appartenance d'un element à une liste [Résolu] » 22-05-2009 22:06:13

Golgup
Réponses : 15

Bonjour,

Y'a t-il un commande direct qui dise si oui ou non, un element appartient à une liste donnée?

Merci

#323 Re : Café mathématique » Nombres premiers » 23-04-2009 18:40:49

Bjr'

MMmm.. C'est quoi cette decouverte de 14 ans d'âge??
Qui sont "ils"??

Au revoir

#324 Re : Café mathématique » Nombres premiers » 13-03-2009 23:11:31

Bonjour,

Tiens, encore un nouveaux message ( cf: merci SébastienB pour le lien!), aprés plus de 9 mois, cette discussions n'est pas encore morte!
Elle n'a pourtant rien d'exeptionnelle! Je ne comprends pas pourquoi les modos ne l'ont pas fermée.
Ne connaissant pas assez bien=>pas du tout le sujet à l'epoque, je me rend compte maintenant que ma question/affirmation posée etait vraiment ridicule (c'est fou comme on peut changer vite) et me demande même comment ai pu poser une telle question..
Bref, il serait peut être temps de conclure..

Je remerci les personnes qui m'avaient éclairés et ramenées sur Terre mais nous voila deja repartis sur Mars, cette discussions n'a plus de sens (à mon goût), sans parler de la distribution stochastique des messages ses derniers temps qui sont sans rappeller celle de nos amis les nombres 1er!

++

#325 Re : Entraide (collège-lycée) » resolution d'une inconnue [Résolu] » 18-02-2009 09:06:12

Lu

Comme personne ne repond..

n=( log (10^-4))/log 1/3 =-4/log1/3

Z+

Pied de page des forums