Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Python: Code liefert keine Daten
Druckversion
Druckversion
Antworten
Antworten
Autor
Schule Python: Code liefert keine Daten
Bekell
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 05.09.2008
Mitteilungen: 2082
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-08-03

Python
  1. def ermittle_anzahl_ZZBrücken(zahl, alle_teiler):
  2. anzahl = 0
  3. länge = zahl //10
  4. for divisor in reversed(alle_teiler):
  5. anzahl += länge // divisor
  6. return anzahl
  7.  
  8. def combinator(zahl,alle_teiler):
  9. abzüge=0
  10. schnittsumme=0
  11. erg=0
  12. länge = zahl //10
  13. for L in range(0, int(len(alle_teiler))+1):
  14. for x in itertools.combinations(alle_teiler, L):
  15. if len(x)==2:
  16. erg=x[0]*x[1]
  17. abzüge=int(länge/erg)
  18. schnittsumme += abzüge
  19. print("x",x)
  20. return erg,x,abzüge, erg
  21.  
  22. anzahl_primzahlen = 0
  23. anzahl_durch_drei_teilbar = 0
  24. anzahl_nicht_durch_drei_teilbar = 0
  25. for zahl in range(8,5008,10):
  26. alle_teiler = []
  27. for j in range(1, (zahl + 1) // 2 + 1):
  28. teiler, rest = divmod(zahl, j)
  29. if rest == 0 and teiler > 2 and isprime(teiler):
  30. alle_teiler.append(teiler)
  31.  
  32. nr = zahl - 12
  33. if isprime(zahl):
  34. anzahl_primzahlen += 1
  35. print(nr, "zahl", zahl, "PZNR:", anzahl_primzahlen)
  36. else:
  37. if zahl % 3 == 0:
  38. anzahl_durch_drei_teilbar += 1
  39. print(nr, "zahl", zahl, "NR3T:", anzahl_durch_drei_teilbar, len(alle_teiler), "PrimTeiler", alle_teiler, ermittle_anzahl_ZZBrücken(zahl, alle_teiler), combinator(zahl,alle_teiler))
  40. else:
  41. anzahl_nicht_durch_drei_teilbar += 1
  42. print(nr, "zahl", zahl, "N3NR:", anzahl_nicht_durch_drei_teilbar, len(alle_teiler), "PrimTeiler", alle_teiler, ermittle_anzahl_ZZBrücken(zahl, alle_teiler), combinator(zahl, alle_teiler))

Warum liefert der Combinator keine Daten, obwohl er - alleine - funktioniert?



-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Scynja
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.02.2011
Mitteilungen: 335
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2020-08-03


Ich habe zwar keine Ahnung, was dein Combinator macht, aber er funktioniert doch, wenn man ihn korrekt einrückt.
python
from itertools import combinations
 
 
def combinator(zahl, alle_teiler):
    abzüge = 0
    schnittsumme = 0
    erg = 0
    länge = zahl // 10
    for L in range(0, int(len(alle_teiler))+1):
        for x in combinations(alle_teiler, L):
            if len(x) == 2:
                erg = x[0]*x[1]
                abzüge = int(länge/erg)
                schnittsumme += abzüge
                print("x", x)
    return erg, x, abzüge, erg
 
 
print("start")
print(combinator(506, [37, 7]))
print("ende")
console
start
x (37, 7)
(259, (37, 7), 0, 259)
ende




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell hat die Antworten auf ihre/seine Frage gesehen.
Bekell wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]