27
Feb
2006

rätsel + lösung

neulich in de.alt.denksport:
Chris ist spitz auf die Tussi, die spitz auf Dirk ist.
Jochen ist spitz auf das Gerät, das spitz auf den Typen ist, der spitz
auf Gisela ist.
Tom ist spitz auf die Alte, die spitz auf den Macker ist, der spitz auf
Jule ist.
Klara ist nicht spitz auf Tom. Andrea ist spitz auf einen Stecher, der
nicht spitz auf Klara ist.
Wer ist spitz auf Jule?

a) Chris
b) Dirk
c) Jochen
d) Tom
e) Keiner davon

Na dann mal los...
weil ich auf biegen und brechen keine anständige Tabelle erstellen konnte, habe ich es per Bruteforce lösen wollen und ein Python-Script geschrieben. Das alles hat einige Stunden beansprucht und hat somit eine Würdigung in diesem Weblog verdient. Hier der Quellcode:
def check(r): #try/except ist ne pseudooptimierung
  try:
    if not (r['klara'] != 'tom' ):
      return False 
  except:
    return None
  
  try:
   if not (r[ r['chris']] == 'dirk'):
     return False
  except:
    return None
  
  try:
    if not (r[ r['andrea']] != 'klara'):
      return False
  except:
    return None
  
  try:
    if not (r[ r[ r['jochen']]]  == 'giesela'):
      return False
  except:
    return None
  
  try:
    if not (r[ r[ r['tom'   ]]]  == 'jule'):
      return False
  except:
    return None
  
  return True
  
def gen_relations(c_relations, c_keys):  #rekursiv
  global m_names, f_names, log_file
  result = check(c_relations)
  if result==None:
    for m in m_names:
      for f in f_names:
        if m not in c_keys:
          gen_relations(dict(c_relations.items() + [(m,f)]), c_keys+[m])
        elif f not in c_keys:
          gen_relations(dict(c_relations.items() + [(f,m)]), c_keys+[f])
  elif result==True:
    print c_relations
    log_file.write(repr(c_relations)+"\n")

if __name__=="__main__":
  m_names = ("chris", "dirk", "tom", "jochen")
  f_names = ("jule", "andrea", "klara", "giesela")
  log_file = open('dicts.py', 'w')
  gen_relations({}, [])
es ist wohl: a) Chris



Was sonst noch geschah: ich habe das Spiel «Sudoku» entdeckt. Suchtpotenzial eindeutig vorhanden.
logo

Die Gonzo Protokolle

realität ist das, was nicht verschwindet, wenn man aufhört, daran zu glauben

Film
Weltgeschehen
Profil
Abmelden
Weblog abonnieren

kostenloser Counter