Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 08.08.2008, 20:16 Titel: Fakultäten Proggi :) |
|
|
hi wer heute schon bei "allgemeine Fragen zu Freebasic" nachgeschaut hat hat sicherlich schon mitbekommen worum es dabei geht
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
falls das programm anklang findet stell ichs ins netz
euer d!rty 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  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 08.08.2008, 20:58 Titel: |
|
|
Jopp Binary+Source wären klasse  |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 08.08.2008, 21:07 Titel: |
|
|
lol den hättest du wohl gern 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  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 08.08.2008, 22:10 Titel: |
|
|
hmmm Also Multithreading nutzt es schonmal nicht^^ mal schauen wie lang meiner (AMD Athlon 64 X2 6000+ @2x3,2 Ghz) für !11111 braucht  |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 08.08.2008, 22:18 Titel: |
|
|
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  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 08.08.2008, 22:32 Titel: |
|
|
Aber nicht sehr viel
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 |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 08.08.2008, 22:45 Titel: |
|
|
lass uns doch ein Projekt draus machen ich progge das morgen nochma neu und baue multithreads ein 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
wenn du mehr über GPUs weißt lass es mich wissen.. vllt coden wir den schnellsten Fakultätenrechner für den Handelsüblichen PC
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  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 09.08.2008, 16:06 Titel: |
|
|
Hehe für CUDA brauchst du aber mindestens ne nVidia GeForce 8 (ATI hat sowas tolles nich )
Was richtig genial wäre, das ganze mit MultiGPU Support auszustatten^^ damit habe ich mich aber noch nicht befasst
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 |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 10.08.2008, 15:36 Titel: |
|
|
also ich hab damit keine probleme hab ne GF8600 GT sollte gehn^^
aba das proggi wird dann wohl nich auf vielen PCs laufen^^ nich jeder hat so eine GRAKA
PS: hab das proggi überarbeitet is jetzt mit multi threading und verbesserter Addition 40% schneller  _________________ "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  |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 10.08.2008, 16:54 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 10.08.2008, 18:21 Titel: |
|
|
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 11.08.2008, 02:54 Titel: |
|
|
hmmm,
mit Hilfe der FPU geht es auch recht zügig..
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.08.2008, 14:07 Titel: |
|
|
das nenne ich ganz eindeutig "geownt"  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 12.08.2008, 00:40 Titel: |
|
|
oha nich schlecht volta
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
is ja auch nur zu fun zwecken gedacht und ausserdem hab ich im Inet (bis auf voltas ) keinen schnelleren als meinen gefunden der alle zahlen komplett anzeigen kann
Ich versuch den noch ein bissl zu optimieren
cheers
d1rty h4rry
EDIT: xD die Restzeit- naja dazu kann ich nur sagen^^ die stimmt nie obwohl ich die Formel für sinn voll halte - [Restdauer] (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  _________________ "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  |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 12.08.2008, 12:30 Titel: |
|
|
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? er selbst hat Folgendes geschrieben: | lol den hättest du wohl gern 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 |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 03.09.2008, 05:32 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 03.09.2008, 09:44 Titel: |
|
|
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 |
|
 |
|