1OS
2018 - 2019

Axonométrie orthogonale

Exercices (version 1.2).

Une implémentation de Monte Carlo

import turtle, math, random

def axes(uneTortue, cote):
    uneTortue.forward(cote)
    uneTortue.up()
    uneTortue.goto(0, 0)
    uneTortue.left(90)
    uneTortue.down()
    uneTortue.forward(cote)
    uneTortue.up()
    uneTortue.goto(0, 0)
    uneTortue.right(90)
    uneTortue.down()

def monte_carlo(uneTortue, cote, nombre_point):
    uneTortue.up()
    point_interieur = 0
    n = nombre_point
    carre_du_cote = cote*cote
    while n > 0:
        x = random.random() * cote
        y = random.random() * cote
        if x*x + y*y < carre_du_cote :
            uneTortue.color('green')
            point_interieur = point_interieur + 1
        else:
            uneTortue.color('red')
        uneTortue.goto(x, y)
        uneTortue.dot()
        n = n - 1
    uneTortue.goto(0, 0)
    uneTortue.down()
    return 4*(point_interieur/nombre_point)
    
caroline = turtle.Turtle()
caroline.speed('fastest')
turtle.tracer(0, 0)

axes(caroline, 200)
print(monte_carlo(caroline, 200, 1000))

Un peu de cryptologie

Quelques définitions à lire ici.

Une introduction.

Chiffer et déchiffrer César

# César 1
# sv 01.05.2019

import string

# alphabet en minuscule et en majuscule
alpha = string.ascii_lowercase
ALPHA = string.ascii_uppercase

# fonction pour chiffrer
def chiffrer(texte, decalage):
    chiffre = ''
    for caractere in texte:
        indice = ALPHA.find(caractere)
        indice = indice + decalage
        indice = indice%26
        caractere_chiffre = ALPHA[indice]
        chiffre = chiffre + caractere_chiffre
    return chiffre

# fonction pour déchiffrer
def dechiffrer(chiffre, decalage):
    return chiffrer(chiffre, 26 - decalage)
# César 2
# sv 01.05.2019

# fonction pour chiffrer
def chiffrer(texte, decalage):
    chiffre = ''
    for caractere in texte:
        nombre = ord(caractere) - 65
        nombre = nombre + decalage
        nombre = nombre%26
        caractere_chiffre = chr(nombre + 65)
        chiffre = chiffre + caractere_chiffre
    return chiffre

# fonction pour déchiffrer
def dechiffrer(chiffre, decalage):
    return chiffrer(chiffre, 26 - decalage)                                               
# César 3
# sv 01.05.2019

import string

alpha = string.ascii_lowercase
ALPHA = string.ascii_uppercase

# fonction pour chiffrer
def chiffrer(texte, decalage):
    ALPHA_DECALE = ALPHA[decalage:] + ALPHA[:decalage]
    chiffre = ''
    for caractere in texte:
        indice = ALPHA.find(caractere)
        caractere_chiffre = ALPHA_DECALE[indice]
        chiffre = chiffre + caractere_chiffre
    return chiffre

# fonction pour déchiffrer
def dechiffrer(chiffre, decalage):
    return chiffrer(chiffre, 26-decalage)                                            
#César affine 1
# sv 01.05.2019
# n |–> a*n + b avec a inversible modulo 26

# Calcul de l'inverse d'un nombre modulo 26
def inverse(nombre, mod=26):
        for n in range(mod):
            if (n * nombre)%mod == 1:
                return n
                break
            elif n == mod-1:
                print("pas d'inverse")
                return None

# fonction pour chiffrer
def chiffrer_affine(texte, a, b):
    chiffre = ''
    for caractere in texte:
        nombre = ord(caractere) - 65
        nombre = a*nombre + b
        nombre = nombre%26
        caractere_chiffre = chr(nombre + 65)
        chiffre = chiffre + caractere_chiffre
    return chiffre

# fonction pour déchiffrer
def dechiffrer_affine(chiffre, a, b):
    return chiffrer_affine(chiffre, inverse(a), -inverse(a)*b)