Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Algorithmen & Lehrreiches

Algorithmen & Lehrreiches Algorithmen & Lehrreiches...

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag [Windows XP-32 bit] Ihr Konto wird gesperrt...
Aufrufe: 25, Antworten: 3
Gehe zum ersten neuen Beitrag Serienempfehlung gewünscht :)
Aufrufe: 1935, Antworten: 27
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26436, Antworten: 4179
Gehe zum ersten neuen Beitrag [Verkaufe] HTC Desire "S"
Aufrufe: 21, Antworten: 0
Gehe zum ersten neuen Beitrag Probleme mit Internet...
Aufrufe: 301, Antworten: 11
Gehe zum ersten neuen Beitrag Schnäppchen Thread ... von...
Aufrufe: 7363, Antworten: 36
Gehe zum ersten neuen Beitrag Vier Jahre Haft für...
Aufrufe: 35, Antworten: 0
Gehe zum ersten neuen Beitrag Wie öffnet man mehrere...
Aufrufe: 203, Antworten: 13
Gehe zum ersten neuen Beitrag Soundprobleme
Aufrufe: 32, Antworten: 1
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31.12.2011, 00:49   #1 (Direktlink)
Stammuser
 
Registriert seit: 21.04.2011
Ort: Hessen
Alter: 15
Beiträge: 327
Standard

Abt. Primel-Gefriemel
-----------------------

Von 22 Sekunden auf 16 Sekunden... Wer hätte das gedacht . Hier die neue Version:

Code:
$P-
'PrimTurbo
'
'Turbo-Primzahlensuchprogramm

Declare Primeln#, PrimIndex&, MaxPrimel&, ActPrimel&, StartZeit&, PrimCount&, Ausgabe%, JN$, EndZeit&
Cls
Print "Primzahlen finden bis: ";
Input MaxPrimel&
UserMessages 16
Dim Primeln#, MaxPrimel& + 1
Print ""
Print "Primzahlen werden gesucht..."
StartZeit& = &gettickcount
WhileLoop 4, MaxPrimel&, 2
  Byte Primeln#, &loop = 1
EndWhile
WhileLoop 3, sqrt(MaxPrimel&) + 1, 2
  IfNot @Byte(Primeln#, &loop)
    WhileLoop &loop * &loop, MaxPrimel&, &loop << 1
      Byte Primeln#, &loop = 1
    EndWhile
  EndIf
EndWhile
EndZeit& = &gettickcount
Print ""
Print "Suchen abgeschlossen."
Print "Benötigte Zeit: " + @Str$((EndZeit& - StartZeit&) / 1000) + " Sekunden."

Print ""
Print "Primzahlen zählen (J/N)? ";
Input JN$
If @Upper$(JN$) = "J"
  Print ""
  Print "Primzahlen werden gezählt..."
  PrimCount& = 0
  WhileLoop 2, MaxPrimel&
    IfNot @Byte(Primeln#, &loop)
      Inc PrimCount&
    EndIf
  EndWhile
  Print ""
  Print "Gefundene Primzahlen: " + @Str$(PrimCount&)
EndIf
Print ""
Print "Ausgeben (0 = Nicht ausg.; 1 = Im Fenster ausgeben;"
Print "2 = In Datei ausgeben; 3 = beides)? ";
Input Ausgabe%
If (Ausgabe% Mod 2)
  Print ""
  Print "Ausgabe:"
  WhileLoop 2, MaxPrimel&
    IfNot @Byte(Primeln#, &loop)
      Print &loop
    EndIf
  EndWhile
EndIf
If (Ausgabe% \ 2)
  Print ""
  Print "Dateiausgabe..."
  Assign #1, "Primzahlen.txt"
  ReWrite #1
  WhileLoop 2, MaxPrimel&
    IfNot @Byte(Primeln#, &loop)
      Print #1, &loop
    EndIf
  EndWhile
  Close #1
EndIf
Dispose Primeln#
Print "Beliebige Taste zum Beenden drücken..."
WaitInput
Bis 10000 (1229 Primzahlen)
---------------------------
Interpreter: 0,628 Sekunden
Compiler*: 0,121 Sekunden

Bis 1M (78498 Primzahlen)
-------------------------
Interpreter: 77,491 Sekunden
Compiler: 16,356 Sekunden

Vergleichen kann ich leider nicht, da p.specht ja die anderen Male getestet hat... Würdest Du vllt. nochmal?

So, und jetzt in Assembler!!!


Gruß
Jonathan

*Juchuuu, XProfan X2 zu Weihnachten bekommen *freu*
__________________
ASUS K50IJ Notebook --- Pentium T4500 2x 2,4GHz --- 4GB RAM --- 64GB m4 SSD --- Win 7 Home Premium 32-Bit --- XProfan X2.0b

Das Schönste am Programmieren ist immernoch die Fehlersuche

Dieser Beitrag besteht zu 100% aus Recycling-Bytes.
Jonathan ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 12.01.2012, 17:10   #2 (Direktlink)
Stammuser
 
Registriert seit: 21.04.2011
Ort: Hessen
Alter: 15
Beiträge: 327
Standard

Ach, ich sehe gerade, in diesem Thread ist ja die Assemblerversion noch gar nicht drin - hier kommt sie, mit einer Geschwindigkeit von 45 Sekunden für 1 Milliarde Primzahlen

Code:
$P-
'PrimTurbo in Assembler
'
'Eine Primzahlensuche, die abgeht wie sonstwas...
Declare Daten#, ZahlenAnzahl&, StartZeit&, JN$, PrimAnz&

'Erstellt mit dem XProfan Datengenerator, (C) Frank Abbing
'Datei: C:\Users\Jonathan\Desktop\JWASM\PrimTurbo_Hauptschleife.BIN (originale Dateigröße: 162 Bytes)
Declare Code#
Dim Code#,164
Clear Code#
Long Code#,0=1397791846,1448563281,35048,-1959228672,12977264,21022208
Long Code#,24=37799424,54576640,71353856,88131072,104908288,121685504
Long Code#,48=16827904,16859334,441,-834977536,-796187532,311087363,1946286720
Long Code#,76=-1047834384,-487075445,-1957113717,-958790696,-788332285
Long Code#,96=-210315461,29087723,-1962934272,63013832,-150736757,225955387
Long Code#,120=-1048374902,16416770,-347868555,63474671,428425679,1499094878
Long Code#,144=-1654237093,321731,-854261760,-1957165221,49920

Print "Primzahlen finden bis: ";
Input ZahlenAnzahl&
Dim Daten#, ZahlenAnzahl& + 5
Long Daten#, 0 = ZahlenAnzahl&
Long Daten#, 4 = (Sqrt(ZahlenAnzahl&) + 1) \ 1
WhileLoop 0, @SizeOf(Code#) - 4
  If @Long(Code#, &loop) = 123456789
    Long Code#, &loop = Daten#
  EndIf
EndWhile
Print "Primzahlen werden gesucht..."
StartZeit& = &gettickcount
@Call(Code#)
Print ""
Print "Fertig!"
Print "Benötigte Zeit: " + @Str$((&gettickcount - StartZeit&) / 1000) + " Sekunden."
Print "Gefundene Primzahlen: " + @Str$(@Long(Daten#, ZahlenAnzahl& + 1))

Print ""
Print "Primzahlen in Datei 'Primzahlen.txt' schreiben (J/N)? ";
Input JN$
If @Upper$(JN$) = "J"
  Print ""
  Assign #1, "Primzahlen.txt"
  ReWrite #1
  
  WhileLoop 2, ZahlenAnzahl&
    IfNot @Byte(Daten#, &loop)
      Print #1, &loop
    EndIf
    IfNot &loop Mod (ZahlenAnzahl& \ 1000)
      Locate %csrlin - 1, 1
      Print @Str$(&loop / ZahlenAnzahl& * 100) + "% geschrieben..."
    EndIf
  EndWhile
  Close #1
EndIf
Dispose Code#
Dispose Daten#
Print ""
Print "Fertig!"
WaitKey

Gruß
Jonathan
__________________
ASUS K50IJ Notebook --- Pentium T4500 2x 2,4GHz --- 4GB RAM --- 64GB m4 SSD --- Win 7 Home Premium 32-Bit --- XProfan X2.0b

Das Schönste am Programmieren ist immernoch die Fehlersuche

Dieser Beitrag besteht zu 100% aus Recycling-Bytes.
Jonathan ist offline   Mit Zitat antworten
Alt 13.01.2012, 17:14   #3 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Nicht schlecht !!!

1Mio Primzahlen in 0 Sekunden


__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 13.01.2012, 18:03   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.089
Standard

Assembler halt.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Algorithmen & Lehrreiches

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Workstation für 3D-Berechnung efendi Hardware - Kaufempfehlungen 4 28.01.2010 11:30
speicherplatz berechnung Tim25 Allgemein 1 14.02.2007 19:27
berechnung von clustergröße einer HDD nagg Allgemein 1 01.09.2005 17:46
Excel / Formel zur Berechnung der Geschwindigkeit Goebi Office-Anwendungen 1 04.08.2005 23:54
Berechnung Stromverbrauch bei Notebook tronixx Hardware - Problemlösungen 15 05.08.2004 14:08



Alle Zeitangaben in WEZ +2. Es ist jetzt 16:00 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2