Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 4. Sonntagsrätsel

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
21.01.2003, 12:05 Uhr
~0xdeadbeef
Gast


Das ist allerdings eine Formel, die du nicht so in deinen Rechner eingeben willst - es sei denn, du hast einen ziemlich grossen Cluster zur Verfügung und/oder willst ihn für ein paar Jahrtausende beschäftigen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
21.01.2003, 13:01 Uhr
virtual
Sexiest Bit alive
(Operator)


Hm. (Meine) Rechner haben inzwischen deutlich mehr als ein Hertz. Daher klappt es bei mir in Null komma nix:


C++:
#include <stdio.h>

#define STUFEN_ZAHL 100

int main()
{
    double s[STUFEN_ZAHL] = { 1.0, 2.0, 4.0 };
    int i;

    for(i=3; i<STUFEN_ZAHL; ++i)
        s[ i ] = s[ i-1 ] + s[ i-2 ] + s[ i-3 ];

    printf("Es gibt %g Moeglichkeiten, eine Treppe mit %d Stufen\n"
           "hochzugehen, wobei man 1-3 Stufen auf einmal nehmen kann.\n",
           s[STUFEN_ZAHL-1], STUFEN_ZAHL);
}


Kleine erweiterung für hypothetische Maschinen, die nur ganz wenig Speicher haben, also kein großes Array vertragen:

C++:

#define UNGETESTET !!!!

#include <stdio.h>

#define STUFEN_ZAHL 100

int main()
{
    double s[4] = { 1.0, 2.0, 4.0, 0.0 };
    int i;

    for(i=3; i<STUFEN_ZAHL; ++i)
        s[ i%4 ] = s[ (i-1)%4 ] + s[ (i-2)%4 ] + s[ (i-3)%4 ];

    printf("Es gibt %g Moeglichkeiten, eine Treppe mit %d Stufen\n"
           "hochzugehen, wobei man 1-3 Stufen auf einmal nehmen kann.\n",
           s[(STUFEN_ZAHL-1)%4], STUFEN_ZAHL);
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 21.01.2003 um 13:50 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
21.01.2003, 13:47 Uhr
~0xdeadbeef
Gast


Ja gut,so ist es auch iteriert. Ich meinte jetzt sowas in der Form:

C++:
unsigned long long moeglichkeiten(int stufen) {
if (stufen == 1) return 1;
if (stufen == 2) return 2;
if (stufen == 3) return 4;
return moeglichkeiten(stufen - 1) + moeglichkeiten(stufen - 2) + moeglichkeiten(stufen - 3);
}


Das dürfte ne Weile dauern.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
21.01.2003, 13:54 Uhr
virtual
Sexiest Bit alive
(Operator)


Acho so. Diese Lösung habe ich nicht ernstlich in Erwägung gezogen. Mit einen "unsigned long long" kommst Du uebrigens nicht hin. (2^64 < 1.8*10^26)
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
21.01.2003, 14:33 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Vielen Dank für eure Mühe!!!! Hoffe, dass das der 25MHz CPU meines Taschenrechners überlebt

Danke!!!
mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
22.01.2003, 13:11 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
So geschafft. Meine Formel war falsch:

Dachte nämlich, dass wenn ich nur 1x eine 2er Stufe einbaue, gehe ich 99 Stufen. D.h., dass ich "99 über 1" Möglichkeiten hab diese Stufe unter den 100 aufzuteilen.

thx&CU

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: