Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Spider begrenzt Listing?
Druckversion
Druckversion
Antworten
Antworten
Autor
Schule Spider begrenzt Listing?
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2108
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-08-20


Hallo, ich hab die Vermutung, daß Spider das Lifting begrenzt. Ich hätte jetzt 2500 Zahlenpaare kriegen sollen, er zeigt mir in der Konsole nur die letzten 500 Das hatte ich in C++ nie. Ich vermute irgendeine Voreinstellung, habe aber nichts gefunden. Kann jemand, der Spider kennt, mir sagen, wo ich da was verändern kann.  

Danke für den Tip!


-----------------
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
tactac
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 15.10.2014
Mitteilungen: 1882
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2020-08-20


Im Hauptmenü: Werkzeuge >> Voreinstellungen.
In dem sich öffnenden Fenster links "IPython-Konsole" auswählen.
Rechts Tab "Anzeige" wählen.
Ganz unten, (irreführender Weise unter "Quellcode") kann man da eine Puffergröße einstellen, die auf 500 voreingestellt ist.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Delastelle
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 17.11.2006
Mitteilungen: 1543
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2020-08-21


Hallo Bekell!

Falls es geht würde ich ja die Ausgabe in eine Datei umleiten.
So etwa:
programm > aaa.txt
(Dies funktioniert oft.)

Viele Grüße
Ronald



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2108
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2020-08-21


2020-08-20 21:25 - tactac in Beitrag No. 1 schreibt:
Im Hauptmenü: Werkzeuge >> Voreinstellungen.
In dem sich öffnenden Fenster links "IPython-Konsole" auswählen.
Rechts Tab "Anzeige" wählen.
Ganz unten, (irreführender Weise unter "Quellcode") kann man da eine Puffergröße einstellen, die auf 500 voreingestellt ist.

Hallo Tactac, ich hab das Problem noch nicht gelöst..., hatte aber an der Stelle schon die 500 auf 2600 gesetzt.

[Die Antwort wurde nach Beitrag No.1 begonnen.]


-----------------
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
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2504
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2020-08-21


2020-08-21 01:24 - Delastelle in Beitrag No. 2 schreibt:
Hallo Bekell!

Falls es geht würde ich ja die Ausgabe in eine Datei umleiten.
So etwa:
programm > aaa.txt
(Dies funktioniert oft.)

Viele Grüße
Ronald


Noch einfacher wäre es natürlich, die Daten direkt in eine Datei zu schreiben. Dann kann man sie für die weitere Verwendung auch problemlos wieder auslesen.


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2108
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2020-08-21


2020-08-21 01:24 - Delastelle in Beitrag No. 2 schreibt:
Hallo Bekell!

Falls es geht würde ich ja die Ausgabe in eine Datei umleiten.
So etwa:
programm > aaa.txt
(Dies funktioniert oft.)

Danke Delastelle und Einfältiger,
Das Programm läuft auf der Konsole, es werde aber, wie bemerkt, nur die letzten 500 Zeilen ausgegeben. Um an den erst ranzukommen, habe ich nun versucht, den Output
a: in eine Datei umzulenken und
b: in eine Excel Tabelle zu schreiben. Letzteres hat beim Vorprogramm noch geklappt.
Meine Dateien bleiben aber beide leer.

Noch ein Problem: Er gibt etwas Bedenkliches: Es hat mit den Programmaufruffunktion in Write zu tun. Dort gibt es ein Datentypproblem, von dem die Konsole wohl nichts weiss. Ich bekomm es aber nicht gedeutet: "raise Exception ("Unexpected data type %r" % type(data))" wenn ich auf rich_text_helper klicke, werd ich nicht schlau....
python
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from sympy.ntheory import isprime
  4. from sympy import sieve
  5. from sympy import primepi
  6. from math import sqrt
  7. import xlwt
  8. import contextlib
  9.  
  10. zahl=9996 # Zahl mit Endziffer 6 eingeben
  11. nr=0
  12. nr1=0
  13. liste_1=[]
  14. liste_2=[]
  15. list1=[]
  16. list2=[]
  17.  
  18. def primteiler_a(zahl_a):
  19. j=1
  20. teiler_a=[]
  21. teiler_1=[]
  22. while j <= (zahl_a)/2:
  23. if zahl_a%j==0:
  24. teiler_a=zahl_a//j
  25. if teiler_a%2>0 and isprime(teiler_a):
  26. teiler_1.append(teiler_a)
  27. # print(nr,"zahl",zahl,"if: i:",i,"j:",j,"Teilerb",Teilerb,"Teiler",Teiler)
  28. j=j+1
  29. else:
  30.  
  31. #Teiler.append(Teilerb)
  32. #print(nr,"zahl",zahl,"else: i:",i,"j:",j,"Teilerb",Teilerb,"Teiler",Teiler)
  33. j=j+1
  34. return teiler_1
  35. def primteiler_b(zahl_b):
  36. j=1
  37. teiler_b=[]
  38. teiler_2=[]
  39. while j <= (zahl_b)/2:
  40. if zahl_b%j==0:
  41. teiler_b=zahl_b//j
  42. if teiler_b%2>0 and isprime(teiler_b):
  43. teiler_2.append(teiler_b)
  44. # print(nr,"zahl",zahl,"if: i:",i,"j:",j,"Teilerb",Teilerb,"Teiler",Teiler)
  45. j=j+1
  46. else:
  47.  
  48. #teiler_2.append(teiler_b)
  49. #print(nr,"zahl",zahl_b,"else: i:",i,"j:",j,"teiler_b",teiler_b,"teiler_2",teiler_2)
  50. j=j+1
  51. return teiler_2
  52.  
  53. for i in range(3,int(zahl/2)+1,2):
  54. a=zahl-i
  55. b=i
  56. nr=nr+1
  57. liste_1=primteiler_a(a)
  58. liste_2=primteiler_b(b)
  59. l_1=set(liste_1)
  60. l_2=set(liste_2)
  61. l_3=l_1.intersection(l_2)
  62. #if len(liste_1)>0 and len(liste_2)>0: # and len(l_3)==0:
  63. # nr1=nr1+1
  64. print("Nr:",nr,"Ohne gem PT:",a,l_1,b,l_2,l_3,a/b)
  65. # else:
  66. # pass
  67. #print("Nr:",nr,"Mit gem PT:",a,liste_1,b,liste_2,l_3)
  68.  
  69. book = xlwt.Workbook(encoding="utf-8")
  70. zahlsucher = book.add_sheet("zahlsucher","cell_overwrite_ok=True")
  71.  
  72.  
  73.  
  74. zahlsucher.write(0, 0, "Nr")
  75. zahlsucher.write(0, 1, "Zahl")
  76. zahlsucher.write(0, 2, "a")
  77. zahlsucher.write(0, 3, "PrTa")
  78. zahlsucher.write(0, 4, "b")
  79. zahlsucher.write(0, 5, "PrTb")
  80. #zahlsucher.write(0, 6, "a//b")
  81.  
  82. i=0
  83.  
  84. for n in liste_1:
  85. i = i+1
  86. textzahlen = open('textzahlen.rtf','w')
  87. textzahlen.write("\a\n pp")
  88. textzahlen.close()
  89. zahlsucher.write(i, 0, i)
  90. zahlsucher.write(i, 1, n)
  91. zahlsucher.write(i, 2, a)
  92. zahlsucher.write(i, 3, primteiler_a(a))
  93. zahlsucher.write(i, 4, b)
  94. zahlsucher.write(i, 5, primteiler_b(b))
  95. # zahlsucher.write(i, 6, a//b)
  96. book.save("zahlsucher.xls")
  97. textzahlen.save("textzahlen.rtf")

Das Problem ist, ich bin kein Student und kein Programmierer, sondern muß nebenbei Geld verdienen, und will eigentlich Mathe machen, und muß mich auch noch um die ständig wachsende Familie kümmern, und es wäre sehr nett, wenn von den hier aktiven Leuten weiterbringende Hinweise kämen, daß ich die Programm-zum-Laufen-bringen-Zeit reduzieren kann .....


[Die Antwort wurde nach Beitrag No.3 begonnen.]


-----------------
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
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2504
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2020-08-22


2020-08-21 15:14 - Bekell in Beitrag No. 5 schreibt:
... wenn von den hier aktiven Leuten weiterbringende Hinweise kämen, daß ich die Programm-zum-Laufen-bringen-Zeit reduzieren kann .....


Das macht man, indem man sich genau überlegt:
1. Was genau soll das Programm machen?
2. Wie unterteile ich das Problem in kleine, einfach zu lösende Teilprobleme?

Für jedes Teilproblem implementiert man dann die passende Funktion, Prozedur oder Klasse und testet diese an einfachen Beispielen, die man mit Papier und Stift nachrechnen kann.

Du schreibt immer wieder, dass du "Mathematik" betreiben willst.
Dazu gehört in erster Instanz, ein Problem präzise zu beschreiben.
Wenn man das erst einmal halbwegs beherrscht, tut man sich auch in vielen Gebieten der angewandten Mathematik, nicht zuletzt dem Programmieren, wesentlich leichter.


Zum Programmieren gehören weiterhin rudimentäre Englischkenntnisse.
Man sollte bspw. im Kontext der Mathematik zumindest wissen, wie Menge, Tupel, Liste und die zugehörigen Operationen auf Englisch heißen.
Wenn man die nicht hat, sollte man daran arbeiten oder es ganz sein lassen.

Immer wieder zu fragen, wie man einen "Spitzstift" in den "Raumbegrenzer" bekommt und sich anschließen darüber aufzuregen, dass man für "Rundspitzstifte" komplett anderes Werkzeug braucht, nervt die Gesprächspartner irgendwann.
Da sollte der angehende Heimwerker sich über "Nagel", "Wand", "Schraube", "Hammer" und "Schraubendreher" auch mal selbst informieren.


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



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: 353
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, eingetragen 2020-08-22

Python
    zahlsucher.write(i, 3, primteiler_a(a))

Hover auf "a" sagt, dass a=4999.


Guckt man in die Funktion rein...

teiler_1=[]
return teiler_1

Stellt man eine Vermutung auf: Man kann in die Spalte keine Arrays schreiben.

Googelt man "python array to string"
Erster Treffer: (man muss ihn nicht einmal öffnen)
"As we’ve told above that Python Join() function can easily convert a list to string so let’s first check out its syntax. Python Join() Syntax. The syntax of join() is as follows: string_token.join( iterable ) Parameters: iterable => It could be a list of strings, characters, and numbers string_token => It is also a string such as a space ' ' or comma "," etc."

Also probiert man diese Syntax aus:
Python
    zahlsucher.write(i, 3, ', '.join(primteiler_a(a)))

und startet das Programm neu. Davor sollte man den print-Befehl auskommentieren, weil der einfach nur Zeit verschwendet.


Kommt die Exception: "expected str instance, int found"

Erster Treffer: "Can also use .join(map(str, value_list))"

Ändern und noch einmal neustarten...

Nächste Exception: "Unexpected data type <class 'int'>
  File "C:\Projekte\python\testLogging.py", line 94, in <module>
    zahlsucher.write(i, 5, primteiler_b(b))"

Also den genialen Code klauen und noch einmal starten.

Exception: "Exception has occurred: AttributeError
'_io.TextIOWrapper' object has no attribute 'save'
  File "C:\Projekte\python\testLogging.py", line 97, in <module>
    textzahlen.save("textzahlen.rtf")"

Das ist etwas schwieriger, google liefert keine Treffer. Nachdem ich ins Dateisystem geguckt habe, vermute ich, dass sofort geflusht / speichert wird.

Also das auskommentiert und das Ergebnis evaluiert.

rtf

 pp
Excel
Nr	Zahl	a	PrTa	b	PrTb
1	4999	4999	4999	4997	263, 19

Übrigens ist "def primteiler_a(zahl_a):" ein schlechter Methodenname. Der Methodenname sollte eigentlich sagen, was die Methode macht. (Ohne, dass man die Methode lesen muss.) Wenn ich die Methode richtig überflogen habe, dann macht sie 1 zu 1 das gleiche wie primteile_b. Das löst man in der Regel so, dass man der Funktion 2 Parameter übergibt. Man schreibt eine Methode nicht doppelt auf. Wenn man das konsequent befolgt, dann würde man sich mindestens eine Exception sparen.
Und auch wenn es kaum vorstellbar ist: Die meisten Nutzer des MP müssen unter Umständen auch nebenbei Geld verdienen und sich um die Famile kümmern.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2108
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, vom Themenstarter, eingetragen 2020-08-22


2020-08-21 13:58 - Bekell in Beitrag No. 3 schreibt:
2020-08-20 21:25 - tactac in Beitrag No. 1 schreibt:
Im Hauptmenü: Werkzeuge >> Voreinstellungen.
In dem sich öffnenden Fenster links "IPython-Konsole" auswählen.
Rechts Tab "Anzeige" wählen.
Ganz unten, (irreführender Weise unter "Quellcode") kann man da eine Puffergröße einstellen, die auf 500 voreingestellt ist.

Hallo Tactac, ich hab das Problem noch nicht gelöst..., hatte aber an der Stelle schon die 500 auf 2600 gesetzt.

[Die Antwort wurde nach Beitrag No.1 begonnen.]

Problem gelöst!


-----------------
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
thureduehrsen
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 13.11.2007
Mitteilungen: 873
Aus: Kiel, Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2020-08-23


2020-08-22 22:08 - Bekell in Beitrag No. 8 schreibt:
Problem gelöst!

Und zwar wie, in drei Teufels Namen?

mfg
thureduehrsen


-----------------
sammeltlemmas.blogspot.de/

https://www.informatik.uni-kiel.de/~tdu/



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2108
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, vom Themenstarter, eingetragen 2020-08-23


2020-08-23 07:55 - thureduehrsen in Beitrag No. 9 schreibt:
2020-08-22 22:08 - Bekell in Beitrag No. 8 schreibt:
Problem gelöst!

Und zwar wie, in drei Teufels Namen?

mfg
thureduehrsen

Wie Tactac oben gesagt hatte, ich hatte wohl zuvor eine andere Version, und da waren die Präferences noch andere oder ich habe sie nicht gefunden. Jetzt hab ich es plötzlich gefunden. Ich hatte bei Editor zuerst nur die Highlight Occurrences hochgestellt. Man muß es aber bei Konsole den Buffer hochstellen.



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]