Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Python kleine Wunderfrage
Autor
Schule Python kleine Wunderfrage
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Themenstart: 2021-12-07

Hallo, es funktioniert... \sourceon Python \numberson gflist=[] nr=0 gf=1 # grösster faktor for x in primerange(1,15015): for g in range(1,120,1): if isprime(x+(g*4)): nr+=1 if g > gf: gf=g if g not in gflist: gflist.append(g) gflist.append(x) print(nr,".",x,"f:",g*4,"--------1. PZ",x+(g*4)," ",g," ",gf) break print(gflist) \sourceoff Aber warum sind beim Ausdruck immer Aussetzer: z.B Nr. 191, 364, 690 etc? Versteh ich nicht...


   Profil
Nuramon
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 23.01.2008
Mitteilungen: 3578
  Beitrag No.1, eingetragen 2021-12-25

Hallo, ich wundere mich: - Was soll Dein wundersames Programm tun? - Was genau findest Du an der Ausgabe wundersam? Einige auf dem MP haben sich bestimmt schon die Finger wund geschrieben, weil sie Dir in fast jedem deiner Posts die erste Frage stellen müssen. Ein echtes Weihnachtswunder wäre es, wenn Dein Code ausführbar wäre (die fehlenden Importe von primerange und isprime sind hier die wunden Punkte).


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Beitrag No.2, vom Themenstarter, eingetragen 2021-12-25

\quoteon(2021-12-25 01:28 - Nuramon in Beitrag No. 1) Einige auf dem MP haben sich bestimmt schon die Finger wund geschrieben, weil sie Dir in fast jedem deiner Posts die erste Frage stellen müssen. \quoteoff Frohe Weihnachten, Nuramon Selbst hatte das Programm im Anaconda-Laptop geschrieben, da macht Selbst solche kleinen Programme, und da ist es so, was man im Vorprogramm (Kann was ganz anderes sein) schon an Bibliotheken eingebunden hat, läuft auch im nächsten Programm noch. Deshalb fehlen hier die Import-Befehle, denkt Selbst, denn wenn schreibt, dass es laufe, läuft es auch... mir ging es nur um die merkwürdigen Absätze im Print.


   Profil
Nuramon
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 23.01.2008
Mitteilungen: 3578
  Beitrag No.3, eingetragen 2021-12-25

Auch Dir frohe Weihnachten, Bekell. Wenn Du nicht sagst, was das Programm tun soll und nicht genauer beschreibst, was Du mit "merkwürdigen Absätzen" meinst, wie soll man Dir dann weiterhelfen?


   Profil
Red_
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 28.09.2016
Mitteilungen: 1002
  Beitrag No.4, eingetragen 2021-12-25

@Bekell: Geht das irgendwie schneller? Also der Code funktioniert auf jeden Fall. \sourceon Python start = time.time() x = [1, 2, 5, 10, 20, 50, 100, 200] x.sort(reverse=True) @lru_cache(maxsize=None) def f(coin, m): if coin == 0: return [] maxcoin = 0 for i in x: if i <= coin and i <= m: maxcoin = i break if maxcoin == 0: return [] if maxcoin == coin: z = [[maxcoin]] else: try: z = list(map(lambda x: [maxcoin] + x, f(coin - maxcoin, m))) except: z = [] if maxcoin == 1: return z return z + f(coin, maxcoin - 1) print(len(f(200, 200))) print(time.time() - start, "seconds") \sourceoff


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Beitrag No.5, vom Themenstarter, eingetragen 2021-12-26

\quoteon(2021-12-25 21:12 - Nuramon in Beitrag No. 3) Auch Dir frohe Weihnachten, Bekell. Wenn Du nicht sagst, was das Programm tun soll und nicht genauer beschreibst, was Du mit "merkwürdigen Absätzen" meinst, wie soll man Dir dann weiterhelfen? \quoteoff Ja, Du hast recht Nuramon, Das Programm testet die Primzahlen x=4n+1 durch bis 15015 (Tschebycheffs Bias). Und er registriert die Abstände zur vorherigen PZ der gleichen Sorte (4n+1) und wenn eine neuer Abstand (Differenz) auftaucht, registriert er dessen Vorkommen und gibt diesen in einer Liste am Ende aus. Und dann gibt es im Listing unerklärte Prints(), z. b. zwischen 149 und 150 Wie kommen die zustande? Nimm bitte dies: \sourceon Python import math import numpy from sympy.ntheory import * gflist=[] xlist=[] nr=0 gf=1 # grösster faktor for x in primerange(1,15015): for g in range(1,120,1): if isprime(x+(g*4)) and (x+1)%4==0: nr+=1 if g > gf: gf=g if g not in gflist: gflist.append(g) xlist.append(x) print(nr,".",x,"--------1. PZ",x+(g*4)," gf",gf," Dist:",g*4,"=",g,"*4 ---nonquadralePZ",primepi(x+(g*4))-(primepi(x)+1)) break print(nr,gflist) print(nr,xlist) \numberson \sourceoff


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4236
Wohnort: Harz
  Beitrag No.6, eingetragen 2021-12-26

Hallo Bekell, vielleicht solltest du die verbale Beschreibung dessen, was den Programm tun soll, etwas genauer formulieren und dann mal "neben dein Programm" legen und schauen, ob da wirklich das gleiche gemacht wird :) Grüße, frohe Weihnachten und schöne Tage, Gerhard / Gonz


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Beitrag No.7, vom Themenstarter, eingetragen 2021-12-26

\quoteon(2021-12-26 12:14 - gonz in Beitrag No. 6) Hallo Bekell, vielleicht solltest du die verbale Beschreibung dessen, was den Programm tun soll, etwas genauer formulieren und dann mal "neben dein Programm" legen und schauen, ob da wirklich das gleiche gemacht wird :) Grüße, frohe Weihnachten und schöne Tage, Gerhard / Gonz \quoteoff OK, Gonz, er geht 4n-1 durch, daher 3, 7, 11, 19, .... aber das erklärt nicht die monierten Fehlzeilen.


   Profil
Nuramon
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 23.01.2008
Mitteilungen: 3578
  Beitrag No.8, eingetragen 2021-12-26

Ich sehe folgende Ausgabe (Auszug): 147 . 1867 --------1. PZ 1871 gf 10 Dist: 4 = 1 *4 ---nonquadralePZ 0 148 . 1871 --------1. PZ 1879 gf 10 Dist: 8 = 2 *4 ---nonquadralePZ 2 149 . 1879 --------1. PZ 1907 gf 10 Dist: 28 = 7 *4 ---nonquadralePZ 2 150 . 1907 --------1. PZ 1931 gf 10 Dist: 24 = 6 *4 ---nonquadralePZ 1 151 . 1931 --------1. PZ 1951 gf 10 Dist: 20 = 5 *4 ---nonquadralePZ 2 152 . 1951 --------1. PZ 1979 gf 10 Dist: 28 = 7 *4 ---nonquadralePZ 1 153 . 1979 --------1. PZ 1987 gf 10 Dist: 8 = 2 *4 ---nonquadralePZ 0 Was meinst Du mit Fehlzeile?


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Beitrag No.9, vom Themenstarter, eingetragen 2021-12-26

Ich mein das: https://matheplanet.com/matheplanet/nuke/html/uploads/b/23651_Aussetzer1.png Da ist immer mal eine leere Zeile im Listing.... ich find nicht die Stelle, wo das am Programm liegen soll... vllt hat das was damit zu tun, dass irgend ein Speicher voll ist...


   Profil
Nuramon
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 23.01.2008
Mitteilungen: 3578
  Beitrag No.10, eingetragen 2021-12-26

Ich kann das nicht reproduzieren. Bei mir sind keine Leerzeilen in der Ausgabe. Wie führst Du das Programm aus?


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Beitrag No.11, vom Themenstarter, eingetragen 2021-12-26

Im Python Anaconda Notebook.... es sind noch mehr Leerzeilen, der nächste bei 263 dann 379, dann 494, dann 610


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Beitrag No.12, vom Themenstarter, eingetragen 2021-12-26

\quoteon( - im Themenstart) \quoteoff \quoteon if isprime(x+(g*4)) and (x+1)%4==0: \quoteoff Im Effekt macht er es aber.... Wenn x plus ein Vielfaches von 4 prim ist, - x ist prim, weil aus primerange entnommen - und es gehört zur Menge x=4n-1, weil Selbst ja als Bedingung (x+1)%4==0 hat.


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2872
  Beitrag No.13, vom Themenstarter, eingetragen 2021-12-26

@Nuramon ich hab einen Hinweis, die Abstände zwischen den ominösen Leerzeilen sind: https://matheplanet.com/matheplanet/nuke/html/uploads/b/23651_Abstandtabelle.png Und die nächste ist schon 840 (+115), nicht 841 (+116), wie es die Tabelle suggerieren würde.... ergo hat es was mit dieser Programmzeile zu tun: for g in range(1,120,1): bloss was?


   Profil
Nuramon
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 23.01.2008
Mitteilungen: 3578
  Beitrag No.14, eingetragen 2021-12-26

In einem Jupyter Notebook sehe ich die Leerzeilen jetzt auch. Keine Ahnung, woher die kommen. Aber es scheint mit der Größe des Fensters mit dem Notebook zusammenzuhängen: Wenn ich das Fenster eher klein mache, dann sind die Leerzeilen auf einmal an anderen Stellen als wenn ich das Fenster maximiere. (Wohlgemerkt ändern sich die Leerzeilen erst dann, wenn ich das Programm nochmal ausführe.) [Die Antwort wurde nach Beitrag No.12 begonnen.] Von Deinem Code allein kommen die Leerzeilen nicht, das liegt schon irgendwie an Jupyter.


   Profil
Bekell hat die Antworten auf ihre/seine Frage gesehen.
Bekell wird per Mail über neue Antworten informiert.

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-2022 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]