| Autor |
Nachricht |
CBR-Racer
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.12.2003
Beiträge: 15
|
CBR-Racer Mitglied
20:27:17 05.12.2003 Titel: |
Fakultät in logarithmischer Lauftzeit berechnen |
Zitieren |
Hallo Leute ...
ist mein erster Beitrag und dann gleich sowas kompliziertes ... also als ich diese Aufgabe gestellt gekriegt habe, war meine erster Gedanke, das geht gar nicht
aber mein Prof sagte, mit einem Trick würde man das hinbekommen ... allerdings muss ich gestehen, den Trick habe ich noch nicht gefunden ...
kann mir von euch jemand nen Tip geben ??
danke schon mal im voraus |
|
|
|
 |
benutzername
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.10.2003
Beiträge: 98
|
benutzername Mitglied
20:30:26 05.12.2003 Titel: |
|
Zitieren |
Ich verstehe nicht einmal die Aufgabenstellung. Kannst Du etwas genauer formulieren? |
_________________ Dies ist ein Text, der an jeden Beitrag von Ihnen angehängt werden kann. Es besteht eine Limit von 255 Buchstaben.
|
|
 |
CBR-Racer
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.12.2003
Beiträge: 15
|
CBR-Racer Mitglied
20:55:58 05.12.2003 Titel: |
|
Zitieren |
n! berechnen in zeit O(log n)
keine Ahnung wie ich das anders erklären soll ... |
|
|
|
 |
Walli
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.09.2002
Beiträge: 11011
|
Walli Mitglied
20:58:05 05.12.2003 Titel: |
|
Zitieren |
Also die Fakultät in logarithmischer Laufzeit berechnen kannst du indem du sie rekursiv implementierst. |
|
|
|
 |
Griffin
Mitglied
Benutzerprofil
Anmeldungsdatum: 12.03.2002
Beiträge: 2760
|
Griffin Mitglied
20:58:52 05.12.2003 Titel: |
|
Zitieren |
du willst den algorithmus für die fakultät der eine logarithmische laufzeit hat, oder?!
rekursion! die rekursive definition findest du echt in jeden tafelwerk. |
_________________ Beim Raufen gefürchtet, von Weibern verehrt, beim Saufen der Beste, sein Körper begehrt, weltlich gebildet, sein Lümmel wie ein Bein, das muss der Griffin aus dem Java Forum sein!
http://www.javacore.de - DIE Plattform für Javaiianer!
Zuletzt bearbeitet von Griffin am 20:59:40 05.12.2003, insgesamt 1-mal bearbeitet |
|
 |
Walli
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.09.2002
Beiträge: 11011
|
Walli Mitglied
21:02:48 05.12.2003 Titel: |
|
Zitieren |
|
 |
CBR-Racer
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.12.2003
Beiträge: 15
|
CBR-Racer Mitglied
21:11:35 05.12.2003 Titel: |
|
Zitieren |
also danke erstmal für eure Antworten ... allerdings sehe ich das etwas anders ...
1) ich hatte es rekursiv programmiert ... und dann kam die Aufgabe, es halt in logarithmischer Laufzeit zu programmieren
2) würde ich behaupten, rekursiv programmiert ist es dann logarithmisch zu n! aber nicht zu n |
|
|
|
 |
Walli
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.09.2002
Beiträge: 11011
|
Walli Mitglied
22:12:03 05.12.2003 Titel: |
|
Zitieren |
Eine weitere Möglichkeit wäre die iterative. Die hat aber die Laufzeit O(n). Langsam gehen mir aber die Ideen aus. Ich kenne kaum noch Methoden wie man es sonst machen soll. |
|
|
|
 |
CBR-Racer
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.12.2003
Beiträge: 15
|
CBR-Racer Mitglied
22:32:06 05.12.2003 Titel: |
|
Zitieren |
tja siehst du, genau das Problem habe ich auch ... also angeblich soll das gehen, halt mit einem Trick ... aber da ich zur Zeit echt keinen Plan habe, wie der Trick aussehen soll, habe ich einfahc mal diesen Beitrag hier geschrieben ...
vielleicht findet sich ja noch jemand, der eine Idee hat ...
aber danke |
|
|
|
 |
Walli
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.09.2002
Beiträge: 11011
|
Walli Mitglied
22:54:50 05.12.2003 Titel: |
|
Zitieren |
Du könntest eine Lookup-Table lösung implementieren. Du codierst hart die Fakultäten für z.B. jeden 10. Integer ein, startest bei f[n % 10] aus deinem hartcodierten Array und machst von dort aus weiter. Dadurch kommst du je nach Höhe des n von der Laufzeit auf jeden Fall unter O(n) und O(log n). Der Nachteil ist, dass du die LUT immer an den Wertebereich des Ganzzahltyps anpassen musst. |
Zuletzt bearbeitet von Walli am 22:57:57 05.12.2003, insgesamt 1-mal bearbeitet |
|
 |