Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Fakultäten Proggi :)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
d1rty.h4rry



Anmeldungsdatum: 05.10.2006
Beiträge: 116
Wohnort: Cassel

BeitragVerfasst am: 08.08.2008, 20:16    Titel: Fakultäten Proggi :) Antworten mit Zitat

hi wer heute schon bei "allgemeine Fragen zu Freebasic" nachgeschaut hat hat sicherlich schon mitbekommen worum es dabei geht lächeln

für alle anderen:

es ist weniger ein Projekt, sondern eher ein kleines Fun Proggi, dass Fakultäten berechnen kann, und als komplette Zahl ausgeben bzw. in einer Datei speichern kann.

für alle die nicht wissen was eine Fakultät ist erklärt es Wikipedia ganz gut:

Wikipedia hat Folgendes geschrieben:
Die Fakultät (manchmal auch Faktorielle genannt) ist in der Mathematik eine Funktion, die einer natürlichen Zahl das Produkt aller natürlichen Zahlen kleiner oder gleich dieser Zahl zuordnet. Sie wird durch ein dem Argument nachgestelltes Ausrufezeichen („!“) abgekürzt.

Beispiele

1! = 1
2! = 1 * 2 = 2
3! = 1 * 2 * 3 = 6
4! = 1 * 2 * 3 * 4 = 24
5! = 1 * 2 * 3 * 4 * 5 = 120



und das Programm kann solche Fakultäten berechnen,
nach einigen Optimierungsarbeiten kann es nun die Fakultät 11111!
in 26min und 46.986sek berechnen..

was mir das ganze jetzt bringt weiß ich noch nicht^^ aber falls jemand interesse hat hier mal ein Screenie happy



falls das programm anklang findet stell ichs ins netz happy

euer d!rty lächeln h4rry
_________________
"Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 08.08.2008, 20:58    Titel: Antworten mit Zitat

Jopp Binary+Source wären klasse lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d1rty.h4rry



Anmeldungsdatum: 05.10.2006
Beiträge: 116
Wohnort: Cassel

BeitragVerfasst am: 08.08.2008, 21:07    Titel: Antworten mit Zitat

lol den hättest du wohl gern lächeln ich geb erstmal binary den source kann ich erst nach ner überarbeitung geben^^ ein bisschen ordnen und so... hab nich eine Variable deklariert, total unübersichtlich^^ ma schaun^^

erstma hier die binarys..
einmal die mit Strings und die etwas rasantere Version mit Arrays
http://rapidshare.com/files/135876637/Fakultaet___.zip.html

binary wird nachgereicht morgen oda so sitz heut schon zu lang am PC^^

euer Dirty.H4RrY
_________________
"Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 08.08.2008, 22:10    Titel: Antworten mit Zitat

hmmm Also Multithreading nutzt es schonmal nicht^^ mal schauen wie lang meiner (AMD Athlon 64 X2 6000+ @2x3,2 Ghz) für !11111 braucht grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d1rty.h4rry



Anmeldungsdatum: 05.10.2006
Beiträge: 116
Wohnort: Cassel

BeitragVerfasst am: 08.08.2008, 22:18    Titel: Antworten mit Zitat

sag mal wenn des fertig hast^^

ich hab nen DaulCore (@2 2,2Ghz) müsste bei dir aso schneller gehn^^
_________________
"Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 08.08.2008, 22:32    Titel: Antworten mit Zitat



Aber nicht sehr viel lächeln

Naja ich beschäftige mich sowieso schon ein bissl länger mit CUDA, da kann ich ja auch mal schauen ob ich nicht einen GPU-Fakultäten-Rechner bastl...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d1rty.h4rry



Anmeldungsdatum: 05.10.2006
Beiträge: 116
Wohnort: Cassel

BeitragVerfasst am: 08.08.2008, 22:45    Titel: Antworten mit Zitat

lass uns doch ein Projekt draus machen lächeln ich progge das morgen nochma neu und baue multithreads ein happy ausserdem ginge das vllt schneller wenn ich statt Uintegers mit 9 stellen vllt. Long Int's nehme, befass ich mich mal morgen damit, kann aber sein das ich dort 20 stellen oder mehr unterbringen kann... zusammen mit multithreading dürfte es sehr schnell gehen happy
wenn du mehr über GPUs weißt lass es mich wissen.. happy vllt coden wir den schnellsten Fakultätenrechner für den Handelsüblichen PC lächeln

ps. ich lasse über nacht mal 50000! laufen, das hat ca 180000 stellen mal sehn^^
_________________
"Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 09.08.2008, 16:06    Titel: Antworten mit Zitat

Hehe für CUDA brauchst du aber mindestens ne nVidia GeForce 8 (ATI hat sowas tolles nich happy )

Was richtig genial wäre, das ganze mit MultiGPU Support auszustatten^^ damit habe ich mich aber noch nicht befasst grinsen

Das einzige was inzwischen auf fast jeden Rechner läuft ist GLSL, dafür braucht man mindestens openGL 1.2, dass ist aber wieder komplizierter mit dem Datenaustausch und nicht ganz so perfomant...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d1rty.h4rry



Anmeldungsdatum: 05.10.2006
Beiträge: 116
Wohnort: Cassel

BeitragVerfasst am: 10.08.2008, 15:36    Titel: Antworten mit Zitat

happy also ich hab damit keine probleme lächeln hab ne GF8600 GT sollte gehn^^

aba das proggi wird dann wohl nich auf vielen PCs laufen^^ nich jeder hat so eine GRAKA lächeln

PS: hab das proggi überarbeitet is jetzt mit multi threading und verbesserter Addition 40% schneller lächeln
_________________
"Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 10.08.2008, 16:54    Titel: Antworten mit Zitat

Hab das proggi mal unter wine laufen lassen... für !100 brauch ich zwischen 0,9 und 1,1 sekunden... Mein Tipp : während der berechnung kein Print. Sollte dann wesentlich schneller gehen.
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 10.08.2008, 18:21    Titel: Antworten mit Zitat

Ich weiß nicht, ob die PRINTs bei großen Zahlen so stark ins Gewicht fallen; je weiter die Berechnung voranschreitet, desto länger dauert es auch zwischen den einzelnen PRINTs. Aber müsste man mal ausprobieren.


Man merkt, dass es ein Windows-Programm ist. Wie bei Windows üblich wird die verbleibende Restzeit immer länger statt kürzer. *scherz*
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 11.08.2008, 02:54    Titel: Antworten mit Zitat

hmmm,
mit Hilfe der FPU geht es auch recht zügig.. grinsen
fakult_asm.exe hat Folgendes geschrieben:
Fakultätsberechnung von 1 bis 31000
Berechnet in 81.6179042558541 Sekunden
Das Ergebnis hat 125772 Stellen
Ergebnis =
53498525232102010278342062056071608327........(gekürzt)

Für Fakultät 11111 braucht das Prog 9,3 sek auf einem alten AMD 1400MHz.
Wer es selbst mal ausprobieren möchte fakult.zip (22kByte).
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.08.2008, 14:07    Titel: Antworten mit Zitat

das nenne ich ganz eindeutig "geownt" grinsen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
d1rty.h4rry



Anmeldungsdatum: 05.10.2006
Beiträge: 116
Wohnort: Cassel

BeitragVerfasst am: 12.08.2008, 00:40    Titel: Antworten mit Zitat

oha nich schlecht volta happy
aber ich kann halt nur ein bisschen FB programmieren^^
und ich denke dafür isses schon okay^^

übrigens mit multi threading und nem dualcore fallen die prints nicht ins gewicht.. hab nämlich nochma überarbeitet für 100! braucht er nur noch 0.031 sekunden happy

is ja auch nur zu fun zwecken gedacht happy und ausserdem hab ich im Inet (bis auf voltas lächeln ) keinen schnelleren als meinen gefunden der alle zahlen komplett anzeigen kann lächeln

Ich versuch den noch ein bissl zu optimieren lächeln

cheers

d1rty lächeln h4rry

EDIT: xD die Restzeit- naja dazu kann ich nur sagen^^ die stimmt nie happy obwohl ich die Formel für sinn voll halte - [Restdauer]traurig(100/[Prozent fertig])*[Laufzeit])/60

EDIT2: @Volta: Könntest du mir erklären wie dein proggi funktioniert? oda mir den Source mal zeigen?.. es ist wirklich rasant, ich hab leider keine ahnung von ASM happy
_________________
"Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 12.08.2008, 12:30    Titel: Antworten mit Zitat

d1rty.h4rry hat Folgendes geschrieben:
Könntest du mir erklären wie dein proggi funktioniert? oda mir den Source mal zeigen?
wie war das noch mal? geschockt
er selbst hat Folgendes geschrieben:
lol den hättest du wohl gern lächeln ich geb erstmal binary

Die Verarbeitung in einzelnen ASCII-Werten kann nur sehr langsam sein.
Ich babe mich daran erinneret wie man vor 30 Jahren mit dem Z80 große Zahlenwerte verarbeitete, im gepackten BCD - Format.
In den FPUs (8087 bis heute) hat man dies noch implementiert, so das man mit 19stelligen BCD - Zahlen rechnen kann.
Das macht heute wohl keiner mehr aber für diese Anwendung war es ideal.
Mit nur 6 ASM Anweisungen werden also mehrere Ziffern gleichzeitig berechnet.
Code:
    Asm           ' Ziffern im BCD - Format berechnen
      fbld  [Zahl1]
      fbld  [Zahl2]
      fmulp
      fbld  [Uebertag]
      faddp
      fbstp [Erg] '(Zahl1 * Zahl2 + übertrag)
    End Asm
Der Rest ist FB um Uinteger in gepackte BCD und zurück zu wandeln.
Und natürlich ein schneller iterativer Algorithmus für die 'Faktorielle'-Funktion n!.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 03.09.2008, 05:32    Titel: Antworten mit Zitat

hmmm...
also linux' bc hat 10000! in 5 minuten berechnet... da duerfte 11111! nicht viel laenger dauern...
auf einem 3,4GHzer mit hyperthreading

grmpf... hat volta ja schon sowas aehnliches gepostet xD
aber ob bc irgendwelche FPUs benutzt weiss ich nicht
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 03.09.2008, 09:44    Titel: Antworten mit Zitat

Hängt davon ab, was du unter "nicht viel länger" verstehst. 10000! hat etwa die Größenordnung 10^35659, 11111! etwa die Größenordnung 10^40129.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz