Notatnik rozwiązuje problem Z 1-5
        z książki Normana D. Willisa
         “Zagadki Logiczne”
        Wydawnictwo “Klub Dla Ciebie”, Warszawa 2004.

   W królestwie leżącym na końcu świata widywano niekiedy tajemnicze
   stworzenia. Jakie ? Różne. Jedni widywali takie, a inni siakie.
   Przeanalizuj poniższe zdania i dociecz, jakie istoty zobaczył
   książę Tal i czterej rycerze: sir Aard, sir Bolbo, sir Delfo
   i sir Keln. Uwaga: każdy z nich widział inne stworzenie.

  (1) Jeżeli sir Bolbo zobaczył monocerosa, to sir Delfo zobaczył satyra.
  (2) Jeżeli sir Bolbo zobaczył bonakona, to książę Tal zobaczył monocerosa.
  (3) Jeżeli sir Keln nie zobaczył leukrota, to sir Aard zobaczył satyra.
  (4) Jeżeli sir Bolbo albo sir Aard zobaczył bazyliszka, to sir Delfo
      nie zobaczył monocerosa.
  (5) Jeżeli książę Tal zobaczył bonakona, to sir Aard zobaczył bazyliszka.
  (6) Jeżeli książę Tal zobaczył monocerosa, to sir Delfo zobaczył leukrota.
  (7) Jeżeli sir Delfo nie zobaczył bazyliszka, to zobaczył monocerosa.
  (8) Jeżeli sir Delfo nie zobaczył satyra, to sir Bolbo nie zobaczył leukrota.

rp[ir][ip]  to tablica z rozwiązaniem, przy czym ir  indeksuje rycerzy, a ip indeksuje potwory.
   w1,w2,w3,w4,w5,w6,w7,w8 oznaczają warunki z książki 

    rycerze:
    0 - Tal
    1 - Aard
    2 - Bolbo
    3 - Delfo
    4 - Keln

    potwory:
    0 - monoceros
    1 - bonakon
    2 - leukrot
    3 - bazyliszek
    4 - satyr

     trochę logiki:
     (1)   nieprawda(a lub b) <=> nieprawda(a) i nieprawda(b)
     (2)   nieprawda(a i b) <=> nieprawda(a) lub nieprawda(b)
     (3)   nieprawda (a -> b) <=> a i nieprawda(b)
     (4)   (a -> b) <=>  nieprawda(nieprawda(a -> b)) <=> nieprawda(a) lub b

For[ip0=0,ip0<5,ip0++,For[ip1=0,ip1<5,ip1++,For[ip2=0,ip2<5,ip2++,For[ip3=0,ip3<5,ip3++,For[ip4=0,ip4<5,ip4++,If[ip0*ip0*ip0+ip1*ip1*ip1+ip2*ip2*ip2+ip3*ip3*ip3+ip4*ip4*ip4==100,
     For[ir=0,ir<5,ir++,For[ip=0,ip<5,ip++,rp[ir][ip]=0]];
rp[0][ip0]=1;
rp[1][ip1]=1;
rp[2][ip2]=1;
rp[3][ip3]=1;
rp[4][ip4]=1;
w1=(rp[2][0]==0||rp[3][4]==1);
w2=(rp[2][1]==0||rp[0][0]==1);
w3=(rp[4][2]==1||rp[1][4]==1);
w4=((rp[2][3]==0&&rp[1][3]==0)||rp[3][0]==0);
w5=(rp[0][1]==0||rp[1][3]==1);
w6=(rp[0][0]==0||rp[3][2]==1);
w7=(rp[3][3]==1||rp[3][0]==1);
w8=(rp[3][4]==1||rp[2][2]==0);
If[w1&&w2&&w3&&w4&&w5&&w6&&w7&&w8,Print[" rp[0][",ip0,"] = ",rp[0][ip0]];
Print[" rp[1][",ip1,"] = ",rp[1][ip1]];
Print[" rp[2][",ip2,"] = ",rp[2][ip2]];
Print[" rp[3][",ip3,"] = ",rp[3][ip3]];
Print[" rp[4][",ip4,"] = ",rp[4][ip4]];]]]]]]]

A więc  Tal zobaczył bazyliszka,  Aard - bonakona, Bolbo - satyra, Delfo - monocerosa, a Keln - leukrota.