Advertisement
framp

L'indovinello più difficile del mondo

Apr 26th, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. Tre oracoli divini A, B, e C sono chiamati, in un qualche ordine, Verace, Mendace e Imprevedibile. Verace dice sempre il vero, Mendace dice sempre il falso, mentre Imprevedibile decide se essere sincero o meno in modo completamente casuale. L'obiettivo del gioco è determinare le identità di A, B, e C ponendo loro tre domande a cui è possibile rispondere con un 'si' o con un 'no'. Ogni domanda deve essere posta ad uno solo degli oracoli, che, pur comprendendo l'italiano, risponderà sempre nella propria lingua con le parole 'da' o 'ja'. Non si sa quale di questi termini corrisponda a 'sì' e quale a 'no'.
  2.  
  3. Boolos fornisce inoltre le seguenti precisazioni:
  4. Può essere che a qualche oracolo venga posta più di una domanda (o anche che non ne vengano poste affatto).
  5. Sia il contenuto che il destinatario della seconda domanda possono dipendere dalla risposta ricevuta alla prima (e sarà lo stesso per il terzo quesito).
  6. L'oracolo Imprevedibile si comporta come se, prima di ogni risposta, lanciasse una moneta per decidere come comportarsi: se esce testa sarà sincero, se esce croce dirà il falso.
  7. Imprevedibile risponderà 'da' o 'ja' quando gli si porranno domande del tipo si/no.
  8.  
  9. SPOILER SOLUZIONE SOTTO
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. CV => Casuale Vero
  25. CF => Casuale Falso
  26. NCV/V => Vero
  27. NCF/F => Falso
  28.  
  29. SEI_CASUALE($oracolo){
  30. Se chiedo ad $oracolo se è CV || NCF mi dice ja?
  31. ja = si, da = no:
  32. CV: ja
  33. CF: ja
  34. NCV: da
  35. NCF: da
  36. ja = no, da = si:
  37. CV: ja
  38. CF: ja
  39. NCV: da
  40. NCF: da
  41. }
  42.  
  43. SEI_VERO($oracolo){
  44. Se chiedo ad $oracolo se è V mi dice ja?
  45. ja = si, da = no:
  46. V: ja
  47. F: da
  48. ja = no, da = si:
  49. V: ja
  50. F: da
  51. }
  52.  
  53. Svolgimento:
  54. T = (1. SEI_CASUALE(A) ? A :
  55. (2. SEI_CASUALE(B) ? B : C ) )
  56. 3. SEI_VERO(T)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement