Exercices#

1A#

ensae_teaching_cs.td_1a.optimisation_contrainte.Arrow_Hurwicz (F, C, X0, p0, epsilon = 0.1, rho = 0.1, do_print = True)

On implémente l’algorithme de Arrow-Hurwicz d’une façon générique. Cela correspond au problème d’optimisation …

ensae_teaching_cs.td_1a.vigenere.CasseVigenere (message)

Appelle les deux fonctions DecodeVigenereLongueurCle et DecodeVigenereCle pour casser le code de Vigenère.

ensae_teaching_cs.td_1a.vigenere.code_vigenere (message, cle, decode = False, binary = False)

Crypte et décrypte le code de Vigenère sachant la clé connue.

ensae_teaching_cs.td_1a.edit_distance (mot1, mot2)

Computes the edit distance between two strings.

ensae_teaching_cs.td_1a.flask_helper.FlaskInThread (self, app, host = “localhost”, port = 8081, debug = False)

Defines a thread for the server.

ensae_teaching_cs.td_1a.vigenere.PGCD (m, n)

Détermine le PGCD de deux entiers.

2A#

ensae_teaching_cs.td_2a.DiceStraight (self, dices)

Inspired by Problem A. Dice Straight. On dispose de n dés à six faces, chaque face contient un nombre entier. On dispose les dès en ligne en choisissant chaque face de telle sorte que le nombre entier d’un dé précède celui de son voisin de droite, plus exactement, on veut construire une suite d’entiers consécutifs. Le problème consiste à déterminer, pour un jeu de dès donné la séquence la plus longue.

ensae_teaching_cs.td_2a.EdmondsKarpGraph (self, edges)

This class represents a directed graph using adjacency matrix representation.

ensae_teaching_cs.td_2a.homomorphic.HomomorphicInt (self, value, p = 673, q = 821, e = None)

Implements an « homomorphic integer ». See Homomorphic encryption.

Promenades#

ensae_teaching_cs.special.bellman (edges, iter = 20, fLOG = <function noLOG at 0x7f31b9f39c10>, allow = None, init = None)

Implémente l’algorithme de Bellman-Ford.

ensae_teaching_cs.special.connected_components (edges)

Computes the connected components.

ensae_teaching_cs.special.distance_haversine (lat1, lng1, lat2, lng2)

Calcule la distance de Haversine Haversine formula

ensae_teaching_cs.special.draw_ellipse (xc, yc, a, b)

Dessine une ellipse de centre xc, yc, de demi axe horizontal a, de demi-axe vertical b, l’ellipse a pour équation x²/a² + y²/b² = 1 si l’origine est placée en xc, yc, l’équation de la tangente au point x0, y0 est : :math:` rac{x x_0}{a^2} + rac{y y_0}{b^2}=0`, ou x x_0 b^2 + y y_0 a^2 = 0. Utilise l’algorithme de Bresenham.

ensae_teaching_cs.special.rues_paris.kruskal (edges, extension, fLOG = None)

Applique l’algorithme de Kruskal (ou ressemblant) pour choisir les arcs à ajouter.

ensae_teaching_cs.special.resolution_sudoku (s)

Solves the Sudoku.

ensae_teaching_cs.special.tsp_bresenham.trace_ligne_simple (x1, y1, x2, y2)

Trace une ligne entre les points de coordonnées (x1,y1) et (x2,y2), on suppose que x2 > x1, y2 >= y1, retourne la ligne sous la forme d’un ensemble de pixels (x,y).