• Aucun résultat trouvé

DS 0

N/A
N/A
Protected

Academic year: 2022

Partager "DS 0"

Copied!
1
0
0

Texte intégral

(1)

DS 0

Option informatique, deuxième année

Julien Reichert

Durée : environ une heure et demie

Exercice 1 : Écrire en Caml une fonction retrait ch l qui crée une chaîne de caractères obtenue en retirant de ch des caractères comme précisé dans l, qui est une liste de couples chacun formé par un caractère c et un entier naturel n, de sorte que les n premières occurrences de c soient à retirer.

Par exemple, l'appel retrait "Bonjour le monde" [('o', 2); ('n', 3)] produira "Bjur le mode", sans er- reur même si 'n' n'apparaît que deux fois.

Exercice 2 : Écrire en Caml une fonction decoupage long larg qui détermine la liste des côtés des carrés permettant de paver un rectangle dont les dimensions sont en argument de la fonction. Il s'agit d'optimiser cette liste en prenant à chaque étape le plus grand côté possible pour le carré. En particulier, la liste sera décroissante.

Exercice 2bis : Déterminer la complexité temporelle de la fonction précédente dans le pire des cas avec le plus de rigueur possible (ce n'est pas forcément évident).

Exercice 3 : Écrire en Caml une fonction cordes l, résolvant le problème suivant : on dispose de cordes dont les longueurs sont données dans la liste l, et on les réduit étape par étape en retirant à chaque corde la longueur de la plus petite, faisant disparaître celle-ci ainsi que celles qui avaient la même taille ; il s'agit de déterminer à chaque étape combien il reste de cordes en tant que liste d'entiers, dont le 0 nal n'est pas inclus car il est automatique.

Par exemple, l'appel cordes [3; 3; 2; 9; 7] retournera [5; 4; 2; 1], car au début il y a cinq cordes, puis quand chacune aura été réduite de deux unités il en restera quatre, puis quand celles-ci auront été réduites d'une unité les deux premières de la liste disparaîtront, etc.

Exercice 3bis : Déterminer la complexité temporelle de la fonction précédente dans le pire des cas. Discuter de la possibilité de changer d'algorithme pour rendre la complexité moindre ou améliorer la simplicité d'écriture (suivant le cas).

Exercice 4 : Écrire en Caml une fonction temps l n qui détermine le temps total d'attente à une caisse de super- marché, en fonction de la liste l des temps mis par chaque client et du nombre n de caisses. Le principe est que chaque client dans l'ordre aille à une caisse libre dès qu'il y en a une, et qu'on détermine à quel moment tous les clients auront terminé.

Par exemple, l'appel temps [2; 3; 10] 2 retournera 12, car les deux premiers clients occuperont les caisses et le troisième devra attendre que le premier ait terminé. On observe ainsi que ce n'est pas l'ordre optimal.

Exercice 5 : Écrire en Caml une fonction flavius n k qui détermine l'ordre d'élimination des nombres de 1 à n en s'inspirant de l'histoire de Flavius Josèphe : la liste des nombres de 1 à n est parcourue de manière circulaire, et chaque fois qu'on a compté k éléments, l'élément en cours de parcours est éliminé.

Par exemple, pour n valant 7 et k valant 3, on élimine 3 puis 6, en revenant au début après avoir parcouru 7 on élimine 2, puis 7, puis 5, puis 1 (parcouru deux fois) et nalement 4, qui était le dernier élément. Cela donne nalement la liste [3, 6, 2, 7, 5, 1, 4].

1

Références

Documents relatifs

Sans refaire tous les calculs, puisque la méthode est à chaque fois tout à fait similaire, il est possible de résumer dans un tableau récapitulatif la nature de

Les cordes frappées...

Obtenir les noms et numéro de départements de communes de plus de 30.000 habitants en 2009 dans lesquelles le nombre de naissances en 2011 est inférieur au nombre de décès.. Quelle

Les nombres de la colonne INCH sont-ils proportionnels aux nombres de la colonne MM. Sylvain BOUR+DALÉ 

Les nombres de la colonne INCH sont-ils proportionnels aux nombres de la colonne MM. Sylvain BOUR+DALÉ 

On considère la suite   x n qui donne les abscisses des points d’intersection des cordes avec l’axe des abscisses selon la méthode qui vient d’être exposée. On va

Les cordes vibrent entre le sillet et le chevalet, des clefs situées sur la tête de la guitare permettant de faire varier la tension mécanique de chaque corde (Figure

La théorie des cordes est en principe capable de décrire particules et interactions, toutes intégrées dans une théorie fonda- mentale, par opposition aux théories