• צור קשר

  • פורום וחידות לראיון עבודה

  • סיוע לפרויקטים

  • סרטוני הדרכה

  • קורס פייתון

  • בית

  • More

     pythonIsrael.com

    Untitled
    1. General Discussions
    2. גן החיות בפלורידה - חידת פייתון
    Search
    eddiearb
    Apr 19, 2019
      ·  Edited: Apr 19, 2019

    גן החיות בפלורידה - חידת פייתון

    בגן החיות בפלורידה מסודרים כלובי החיות בשורה, הנה כמה עובדות על סדר הכלובים:

    א. האריה נמצא בדיוק באמצע השורה

    ב. בין הכלב לבין הקוף נמצאת חיה אחת נוספת

    ג. החתול נמצא מימין לכלב צמוד אליו

    ד. הפיל נמצא בין הסוס לבין הג'ירף

    ה. החתול נמצא מימין לסוס (לא בהכרח צמוד אליו)

    ו. בין הג'ירף לבין הכלב מפרידות 3 חיות אחרות

    המשימה שלנו היא לכתוב תוכנית בפייתון שמגלה כיצד מסודרות 7 החיות (בשורה) בגן החיות בפלורידה, לפי התנאים שבסיפור.

    את הפתרון צרפו כתגובה לפוסט הזה. הפותר האלגנטי ביותר יזכה בכבוד של אבירים.

    בהמשך נצרף פתרון משלנו.

    הסוס של השומר בגן החיות בפלורידה


    2 comments
    eddiearb
    Apr 19, 2019

    כתבנו רבות על הספרייה itertools ונפלאותיה, כמו על יכולתה, בעיקר כאשר לא עוסקים ברשימה ארוכה מידי, לייצר במהירות את כל האפשרויות (במקרה שלנו לסידור החיות בשורה) כאשר אין חזרה על חיה אחת פעמיים (במקרה הזה המתודה נקראת permutations). כל מה שנותר לנו לעשות הוא לבחון את קיום כל תנאי החידה ובום... יש פתרון -

    import itertools zoo=["cat","dog","elefant","horse","giraffe","lion","monkey"] def check_zoo(zoo): if zoo.index("cat")-zoo.index("dog")==1: if zoo.index("giraffe")>zoo.index("elefant")>zoo.index("horse") or zoo.index("horse")>zoo.index("elefant")>zoo.index("giraffe"): if zoo.index("lion")==3: if abs(zoo.index("dog")-zoo.index("monkey"))==2: if abs(zoo.index("giraffe")-zoo.index("dog"))==4: if zoo.index("cat")>zoo.index("horse"): return True return False zoo_permutations=itertools.permutations(zoo) for line in zoo_permutations: if check_zoo(line): print(line)

    הפתרון היחיד המתקבל -


    ('giraffe', 'elefant', 'horse', 'lion', 'dog', 'cat', 'monkey')

    eddiearb
    Apr 19, 2019

    כל הכבוד אביר

    0