Adloun

Quelle proportion des systèmes de pièces à trois valeurs [a, b, 1]…

Exercice supplémentaire · niveau 3 (difficile) · NSI (première), chapitre 8 — Dichotomie, voisins et gloutons · Aux frontières

Énoncé

Quelle proportion des systèmes de pièces à trois valeurs sont canoniques, c'est-à-dire tels que le glouton soit toujours optimal ? Compter.

Corrigé


def canonique(pieces, jusqua=40):
    return all(len(rendu_monnaie(s, pieces)) == rendu_exhaustif(s, pieces)
               for s in range(1, jusqua + 1))

triplets = [(a, b, 1) for a in range(4, 12) for b in range(2, a)]
bons = [t for t in triplets if canonique(list(t))]
# sur 44 systemes [a, b, 1], 22 sont canoniques (50 %)
assert (6, 4, 1) not in bons
assert (5, 2, 1) in bons

Une moitié, à peu près. Sur les quarante-quatre systèmes avec et , vingt-deux sont canoniques. Le glouton n'est donc ni « généralement bon » ni « généralement mauvais » : c'est un tirage à pile ou face, décidé par le jeu de valeurs et non par l'algorithme.

Une limite de la méthode, qu'il faut énoncer. On vérifie jusqu'à seulement : un système déclaré canonique ici pourrait échouer sur une somme plus grande. Le test donne une condition nécessaire, pas une preuve. Il existe un vrai critère mathématique — un théorème dû à Pearson, en 2005, qui décide en temps polynomial si un système est canonique — mais il est hors de portée ici, et la mesure honnête consiste à dire ce que le test garantit et ce qu'il ne garantit pas.

Pourquoi le système européen est canonique, lui, n'a rien d'un hasard : chaque valeur est au moins le double de la précédente ou en est un multiple simple (), ce qui interdit exactement les configurations du type « deux moyennes valent mieux qu'une grosse ».

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.