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

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

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

מתוזמן נעוץ נעול הועבר עזרה הדדית - Python
2 פוסטים 2 כותבים 110 צפיות 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

      • התחברות

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

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