AUFGABE: Jeden tag eine Änderung des Bankcodes...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
sebastian0202
User
Beiträge: 116
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Re: AUFGABE: Jeden tag eine Änderung des Bankcodes...

Beitragvon sebastian0202 » Montag 13. Februar 2017, 09:36

Die vier Regeln gelten doch nur, weil wir den Code immer nur um eine Stelle verschieben.
Verschieben wir den Code um die Länge der Quersumme sieht das Ganze meiner Meinung nach anders aus.
Da gibt es Zahlen die immer wiederkehren, was letztendlich bedeutet, dass er sich in einer nie endenden Schleife befindet.

  1.  
  2. def shift_code(code):
  3.     summe = str(quersumme(code))
  4.     abschneiden_ab = (len(code) - len(summe)) * -1
  5.     return code[abschneiden_ab:]+summe
  6.  
  7. def quersumme(code):
  8.     return sum(map(int, code))
  9.  
  10. def change_code(code):
  11.     return shift_code(code)
  12.  
  13. def main():
  14.     alter_code = "1986"
  15.     neuer_code = alter_code
  16.    
  17.     doppelt_vorkommender_code = [0 for i in range(10**len(alter_code))]
  18.    
  19.     durchlauf = 0
  20.     while durchlauf < 10**len(alter_code):
  21.         durchlauf += 1
  22.         neuer_code = change_code(neuer_code)
  23.         doppelt_vorkommender_code[int(neuer_code)] += 1
  24.        
  25.         if neuer_code == alter_code:
  26.             break
  27.    
  28.     print("Wir haben versucht den Ausgangscode (%s) wiederzuerreichen." % alter_code)
  29.     print("Dabei wurde gezählt welche Zahl wie oft vorkam..")
  30.     print("Hier die Zahlen die öfters als einmal vorkamen:")
  31.     for nr, vorkommen in enumerate(doppelt_vorkommender_code):
  32.         if vorkommen > 1:
  33.             print("Zahl %i kommt %i mal vor" % (nr, vorkommen))
  34.  
  35. if __name__ == '__main__':
  36.     main()
  37.  

Zurück zu „Allgemeine Fragen“

Wer ist online?

Mitglieder in diesem Forum: BigRed, franz_news@web.de, snafu