Aller au contenu. | Aller à la navigation


Outils personnels

This is SunRain Plone Theme
Vous êtes ici : Accueil / Thèmes / Algorithmique / Doc Algo / exemples_python.py

#!/usr/bin/python 
import random
def entiers1(n):
    s=0
    for i in range(1,n+1):
        print i,
        s=s+i
    print "somme="+str(s)

def puissance(a,n):
    for i in range(1,n+1):
        print a**i

def piece(n):
    s=0. #ne pas oublier le point qui permet de travailler en flottant
    for i in range(1,n+1):
        if random.random()<0.5:
            s=s+1
    return s/n

def longueur():
    x=random.random()
    y=random.random()
    if x<y:
        a=x
        b=y-x
    else:
        a=y
        b=x-y
    c=1-(a+b)
    return a,b,c


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


def lancer_de_1():
    l=[0]*6
    l1=range(1,7)
    nb=0
    while l!=l1:
        x=random.randint(1,6)
        l1[x-1]=0
        nb=nb+1
    return nb

def nb_moyen(n):
    total=0.
    for i in range(1,n+1):
        total=total+lancer_de_1()
    return total/n


def chiffres(n):
    l=[]
    while n!=0:
        r=n%10
        l.append(r)
        n=(n-r)/10
    return l


def suivant(p):
    l=chiffres(p)
    l.sort()
    n1=0
    n2=0
    for i in range(1,len(l)+1):
        n1=n1+l[i-1]*10**(len(l)-i)
        n2=n2+l[i-1]*10**(i-1)
    return n2-n1


def kaprekar(n):
    liste=[]
    ecart=0
    while (n in liste) ==False:
        liste.append(n)
        n=suivant(n)
        ecart=ecart+1
        if ecart==1:
            rep="kaprekar"
        else:
            if n==0:
                rep="les chiffres de n sont tous identiques"
            else:
                rep="nombre cyclique"
    return n,rep




entiers1(12)
puissance(2,5)
print piece(12)
print piece(1000)
print longueur()
print pgcd(12,45)
print lancer_de_1()
print nb_moyen(1000)
print chiffres(15276)
print kaprekar(4742)