דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. Python
  5. עזרה הדדית - Python
  6. רקורסיה בפייתון

רקורסיה בפייתון

מתוזמן נעוץ נעול הועבר עזרה הדדית - Python
2 פוסטים 2 כותבים 193 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    איסתרק השלישי
    כתב ב נערך לאחרונה על ידי
    #1

    אני מתעסק כבר די הרבה זמן עם פייתון בלימוד עצמי, ורק לאחרונה נודע לי על המושג רקורסיה ועל הגאונות הטמונה בו.
    מצאתי את התרגיל הבא (קרדיט)
    e236f416-67fa-42a9-a96f-b8a81a2b9ffd-image.png

    וזה הפתרון - הרקורסיה הראשונה שלי....

    
    def change(mtr, index, item, sign):
        try:
            x = mtr[index][item]
        except:
            return
        if index >= 0 and item >= 0:
            if x == '#':
                mtr[index][item] = sign
                change(mtr, index - 1, item, sign)
                change(mtr, index + 1, item, sign)
                change(mtr, index, item - 1, sign)
                change(mtr, index, item + 1, sign)
    
    
    def main(mtr):
        t = -1
        sign_list = [i for i in 'abcdefghijklmnopqrstuvwyz']
        for index in range(len(mtr)):
            for item in range(len(mtr[index])):
                if mtr[index][item] == '#':
                    t += 1
                    sign = sign_list[t]
                    change(mtr, index, item, sign)
        for i in mtr:
            print(' '.join(i))
    
    mtr = [
        ['.', '.', '.', '#'],
        ['#', '#', '.', '.'],
        ['.', '.', '#', '.'],
        ['#', '.', '.', '#'],
        ['#', '#', '.', '#'],
        ['.', '.', '#', '#'],
        ['#', '.', '.', '.'],
        ['.', '.', '.', '#'],
        ['#', '#', '.', '.'],
        ['.', '.', '#', '.'],
        ['#', '.', '.', '#'],
        ['#', '#', '.', '#'],
        ['.', '.', '#', '#'],
        ['#', '.', '.', '.']
        ]
    
    if __name__ == '__main__':
        main(mtr)
    

    אשמח לשמוע את דעת המומחים...
    ידידנו @פייתוניסט המומחה, איך אתה היית פותר את זה?

    פ תגובה 1 תגובה אחרונה
    3
    • א איסתרק השלישי

      אני מתעסק כבר די הרבה זמן עם פייתון בלימוד עצמי, ורק לאחרונה נודע לי על המושג רקורסיה ועל הגאונות הטמונה בו.
      מצאתי את התרגיל הבא (קרדיט)
      e236f416-67fa-42a9-a96f-b8a81a2b9ffd-image.png

      וזה הפתרון - הרקורסיה הראשונה שלי....

      
      def change(mtr, index, item, sign):
          try:
              x = mtr[index][item]
          except:
              return
          if index >= 0 and item >= 0:
              if x == '#':
                  mtr[index][item] = sign
                  change(mtr, index - 1, item, sign)
                  change(mtr, index + 1, item, sign)
                  change(mtr, index, item - 1, sign)
                  change(mtr, index, item + 1, sign)
      
      
      def main(mtr):
          t = -1
          sign_list = [i for i in 'abcdefghijklmnopqrstuvwyz']
          for index in range(len(mtr)):
              for item in range(len(mtr[index])):
                  if mtr[index][item] == '#':
                      t += 1
                      sign = sign_list[t]
                      change(mtr, index, item, sign)
          for i in mtr:
              print(' '.join(i))
      
      mtr = [
          ['.', '.', '.', '#'],
          ['#', '#', '.', '.'],
          ['.', '.', '#', '.'],
          ['#', '.', '.', '#'],
          ['#', '#', '.', '#'],
          ['.', '.', '#', '#'],
          ['#', '.', '.', '.'],
          ['.', '.', '.', '#'],
          ['#', '#', '.', '.'],
          ['.', '.', '#', '.'],
          ['#', '.', '.', '#'],
          ['#', '#', '.', '#'],
          ['.', '.', '#', '#'],
          ['#', '.', '.', '.']
          ]
      
      if __name__ == '__main__':
          main(mtr)
      

      אשמח לשמוע את דעת המומחים...
      ידידנו @פייתוניסט המומחה, איך אתה היית פותר את זה?

      פ מנותק
      פ מנותק
      פייתוניסט
      כתב ב נערך לאחרונה על ידי פייתוניסט
      #2

      @איסתרק-השלישי כן לדעתי זו הדרך האולטימטיבית לפתרון הבעיה

      תגובה 1 תגובה אחרונה
      0

      שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

      נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

      בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

      הרשמה התחברות

      • התחברות

      • אין לך חשבון עדיין? הרשמה

      • התחברו או הירשמו כדי לחפש.
      • פוסט ראשון
        פוסט אחרון
      0
      • חוקי הפורום
      • פופולרי
      • לא נפתר
      • משתמשים
      • חיפוש גוגל בפורום
      • צור קשר