MathLvl
Question transversaleMathsNSILogique et calculabilité

Combien de fonctions logiques différentes peut-on construire avec n entrées, et peut-on toutes les réaliser avec ET, OU, NON ?

Une table de vérité à n entrées a 2ⁿ lignes, et chaque ligne vaut 0 ou 1 : il y a 2^(2ⁿ) fonctions. 16 pour 2 entrées, 256 pour 3, plus de 10¹⁹ pour 6. Toutes s'écrivent pourtant avec ET, OU et NON, en réunissant les lignes où la fonction vaut 1.

Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.

Pourquoi cette question : un modèle d'introduction

Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.

En NSI, nous avons rempli des tables de vérité pour ET, OU et OU exclusif. Je me suis demandé combien de fonctions différentes on pourrait inventer avec deux entrées, puis avec plus. Le dénombrement donne des nombres vertigineux, et pourtant trois opérations suffisent à toutes les construire : c'est ce qui permet de fabriquer un processeur avec quelques types de portes.

L'enjeu et les notions du programme

Dénombrer des fonctions par le principe multiplicatif appliqué deux fois, et démontrer qu'un petit ensemble d'opérations suffit à toutes les exprimer.

Mathématiques

  • Principe multiplicatif, nombre d'applications d'un ensemble fini dans un autre (terminale)
  • Logique : connecteurs « et », « ou », négation (seconde)
  • Puissances, ordres de grandeur (seconde)

Numérique et sciences informatiques

  • Booléens, tables de vérité (première)
  • Circuits combinatoires (première)

Le plan de l'exposé en 9,5 min

  1. 1. Introduction

    1 min

    Une fonction booléenne associe à chaque combinaison de n entrées (0 ou 1) une sortie (0 ou 1). Problématique : combien en existe-t-il, et faut-il une porte différente pour chacune ?

  2. 2. Mathématiques : un double dénombrement

    4 min

    Les entrées forment un mot de n bits : il y a 2ⁿ combinaisons, donc 2ⁿ lignes dans la table de vérité. Une fonction est déterminée par sa colonne de sortie : un choix de 0 ou 1 pour chacune des 2ⁿ lignes. Par le principe multiplicatif, il y a 2^(2ⁿ) fonctions.

    Pour n=1 : 4 fonctions (constante 0, constante 1, identité, NON). Pour n=2 : 2⁴=16 (dont ET, OU, OU exclusif, NON-ET…). Pour n=3 : 2⁸=256. Pour n=6 : 2⁶⁴≈1,8×10¹⁹. La croissance est « doublement exponentielle ».

    Pourtant, toute fonction s'écrit avec ET, OU, NON. Pour chaque ligne où la fonction vaut 1, on écrit le ET des entrées (ou de leurs négations) qui reconnaît exactement cette ligne ; puis on fait le OU de ces termes. Exemple : le OU exclusif vaut 1 sur les lignes (1;0) et (0;1) : a⊕ b=(awedgeneg b)vee(neg awedge b).

  3. 3. NSI : des portes aux processeurs

    3 min

    Cette méthode, appelée forme normale disjonctive, garantit qu'on peut réaliser n'importe quelle fonction avec trois types de portes. On peut même se contenter d'une seule : la porte NON-ET, car neg a=a NAND a, et ET, OU s'en déduisent. Les usines de puces fabriquent ainsi des milliards de portes identiques.

    La forme normale peut être très longue (jusqu'à 2ⁿ termes) : simplifier un circuit, c'est trouver une écriture plus courte de la même fonction. En Python, on vérifie l'égalité de deux expressions en comparant leurs sorties sur les 2ⁿ lignes.

  4. 4. Conclusion

    1,5 min

    Il existe 2^(2ⁿ) fonctions booléennes à n entrées, un nombre gigantesque, mais toutes se construisent avec ET, OU, NON, et même avec la seule porte NON-ET. C'est ce qui rend possible la fabrication des processeurs. J'ouvre sur le problème de trouver le plus petit circuit pour une fonction donnée, très difficile en général.

Ce que j'écris au tableau

Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.

2ⁿ lignes ⇒ 2^(2ⁿ) fonctions n=2: 16 n=3: 256 n=6: 2⁶⁴≈1,8×10¹⁹
a⊕ b=(awedgeneg b)vee(neg awedge b) neg a=a NAND a

Conclusion : la réponse à la question

Le dénombrement montre l'immensité des fonctions logiques, et la forme normale disjonctive montre qu'un tout petit nombre d'opérations les engendre toutes. La simplicité des briques explique la complexité des machines.

Les questions probables du jury

Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.

Combien de lignes dans la table de vérité d'une fonction à 4 entrées ?

2⁴=16 lignes, et 2¹⁶=65 536 fonctions possibles.

Écrivez a ET b avec seulement des NON-ET.

(a NAND b) NAND (a NAND b).

Combien d'applications d'un ensemble à p éléments dans un ensemble à q éléments ?

q^(p) : chaque élément de départ a q images possibles.

Écrivez la fonction « majorité » de trois bits en forme normale disjonctive.

(awedge b)vee(awedge c)vee(bwedge c), forme simplifiée de la réunion des lignes à au moins deux 1.

Pourquoi la forme normale peut-elle être longue ?

Elle contient un terme par ligne où la fonction vaut 1, soit jusqu'à 2ⁿ termes.

Les pièges qui coûtent des points

  • Confondre 2^(2ⁿ) et (2²)ⁿ = 4ⁿ.
  • Oublier les fonctions constantes dans le décompte.
  • Croire qu'il faut une porte différente par fonction.

Revoir les notions

Autres questions : logique et calculabilité

Toutes les questions maths-nsi →

Préparer l'oral, pas seulement le contenu

Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.

Méthode : traiter une question de Grand oral →