Vai al contenuto

Funzione 91 di McCarthy

Da Wikipedia, l'enciclopedia libera.

In matematica discreta, la Funzione 91 di McCarthy è una funzione ricorsiva che restituisce 91 per tutti gli argomenti n ≤ 101 e restituisce per . Limitatamente all'insieme degli interi minori di 102 essa, quindi, è un'endofunzione avente un unico punto fisso. Tale funzione fu ideata dall'informatico John McCarthy.

La Funzione 91 di McCarthy è definita come segue:

Esempi:

M(99) = M(M(110)) dato che 99 ≤ 100
      = M(100)    dato che 110 > 100
      = M(M(111)) dato che 100 ≤ 100
      = M(101)    dato che 111 > 100
      = 91        dato che 101 > 100
M(87) = M(M(98))
      = M(M(M(109)))
      = M(M(99))
      = M(M(M(110)))
      = M(M(100))
      = M(M(M(111)))
      = M(M(101))
      = M(91)
      = M(M(102))
      = M(92)
      = M(M(103))
      = M(93)
   .... continua
      = M(99)
     (come sopra)
      = 91

John McCarthy potrebbe aver scritto in questo modo la funzione, nel linguaggio di programmazione Lisp che lui stesso inventò: :

(defun mc91 (n)
  (cond ((<= n 100) (mc91 (mc91 (+ n 11))))
        (t (- n 10))))

Segue la dimostrazione del comportamento descritto della funzione: Per 90 ≤ n < 101,

M(n) = M(M(n + 11))
     = M(n + 11 - 10), poiché n >= 90 quindi n + 11 >= 101
     = M(n + 1)

Di conseguenza M(n) = 91 per 90 ≤ n < 101.

Si può usare questo risultato come caso base per induzione su 11 numeri, in questo modo:

Si assuma che M(n) = 91 per an < a + 11.

Allora, per ogni n tale che a - 11 ≤ n < a,

M(n) = M(M(n + 11))
     = M(91), per ipotesi, dato che a ≤ n + 11 < a + 11
     = 91, per il caso base.

Ora per induzione M(n) = 91 per ogni n in questo blocco. I blocchi così considerati sono adiacenti, senza spazi tra di loro, quindi M(n) = 91 per n < 101. Possiamo anche aggiungere n = 101 come caso speciale.

Ecco una implementazione dell'algoritmo ricorsivo in Java:

public static int M(int n){
    return n>100?n-10:M(M(n+11));
}

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica