Denkaufgabe



  • volkard schrieb:

    falsch. währen eines tischgelages, was 45 minuten dauert, könnten auch drei takte gemeint sein. und es könnte auch nur täglich getaktet werden. darüber besteht keine natürliche übereinkunft.

    😕 Watt, wer bist du denn? :p
    Ich hab zwar keine Ahnung, was du meinst, und rein theoretisch kann man da garantiert immer wieder neue Probleme suchen (und finden) aber praktisch - unterm Strich - haben die Mönche einen festen Tagesrhythmus und treffen sich halt immer all zusammen zu bestimmten Ereignissen (wie essen usw.)

    @Nobuo T:
    Es ist den Mönchen bekannt, dass die Krankheit im Kloster ausgebrochen ist. Außenstehende haben mit der ganzen Geschichte nix zu tun. Daher weiß auch der eine, wenn alle anderen keinen Punkt haben, dass er krank sein muss.

    Zu 2 Erkrankten:

    Erhard Henkes schrieb:

    Sind zwei Mönche erkrankt, dann sieht jeder der beiden Kranken jeweils einen Kranken. Wenn jeder annimmt, er selbst sei gesund, so muss der andere ja laut obigem System am zweiten Tag verschwunden sein. Ist er dies nicht, so muss er selbst einen Kranken gesehen haben. Beide wissen nun, dass sie krank sind. Beide bringen sich am zweiten Tag um.



  • Bloops schrieb:

    😕 Watt, wer bist du denn? :p

    nicht mein problem, daß du mich nicht kennst.

    Bloops schrieb:

    Ich hab zwar keine Ahnung

    dito

    Bloops schrieb:

    , was du meinst, und rein theoretisch kann man da garantiert immer wieder neue Probleme suchen (und finden) aber praktisch - unterm Strich - haben die Mönche einen festen Tagesrhythmus und treffen sich halt immer all zusammen zu bestimmten Ereignissen (wie essen usw.)

    zu denen nie sicher ALLE mönche zugleich sind. der eine muß mal lange kacken und der andere hat sich den fuß angestubst.
    daher ist es natürlich klar, daß man als taktung nur doppeltage nimmt, und einer gilt nur dann als weg, wenn er zu allen veranstaltungen eines doppeltages nicht gesehen ward.

    und es gibt keine verdammte übereinkunft darüber, ob nicht doch tripeltage an derer statt genommen werden sollten.



  • Willst du mich verarschen oder bist du wirklich so gereizt? 😕



  • Bloops schrieb:

    Willst du mich verarschen oder bist du wirklich so gereizt? 😕

    ich widerspreche nur oft bei sachlichen fehlern.



  • http://www.c-plusplus.net/forum/viewtopic.php?t=28082&highlight=m%F6nch
    Erster Beitrag von PeterTheMaster auf der ersten Seite



  • Lustig 🙂 Hätte mich auch gewundert, wenn die Geschichte hier keiner kennt 🙂



  • @Volkard: Wenn du hier solche in der Realitaet sicher auftretenden Anomalien beruecksichtigen willst, fallen mir noch x andere Gruende ein, warum das ganze vorn und hinten nicht klappen kann.
    Mit ein Grund, warum mir solche "Denksportaufgaben" so auf den Keks gehen:
    Mit rein praktischem Denken und unter Beruecksichtigung aller in der Realitaet moeglichen (aber mit sicherheit teilweise vorkommenden) Unregelmaessigkeiten ist denen nicht beizukommen. 🙄



  • wäre die aufgabe deutlicher gepostet worden (siehe peterthemasters beitrag (anderer thread)), dann wärs auch logischer zu lösen gewesen...



  • Nobuo T schrieb:

    Warum mir solche "Denksportaufgaben" so auf den Keks gehen:
    Mit rein praktischem Denken und unter Beruecksichtigung aller in der Realitaet moeglichen (aber mit sicherheit teilweise vorkommenden) Unregelmaessigkeiten ist denen nicht beizukommen. 🙄

    Schach ist auch nicht realistisch.



  • meian schrieb:

    wäre die aufgabe deutlicher gepostet worden (siehe peterthemasters beitrag (anderer thread)), dann wärs auch logischer zu lösen gewesen...

    jo. exakte aufgabenstellung reicht.
    obige aufgabenstellung erlaubt die angegebene lösung einfach nicht.

    welche zahl ergibt 288, wenn sie mit einer anderen zahl (die ich gerade vergessen habe) multipliziert wird? ups, hab die genaue aufgabenstellung vergessen, aber das macht euch sicher nichts aus.



  • volkard schrieb:

    Welche Zahl ergibt 288, wenn sie mit einer anderen Zahl multipliziert wird? ups, hab die genaue aufgabenstellung vergessen, aber das macht euch sicher nichts aus.

    In der Praxis laufen Aufgabenstellungen immer so, das ist man doch gewohnt. Praktiker machen dann für den Rest eigene Annahmen. Also in diesem Fall nehmen wir im ersten Schritt einfach mal positive Ganzzahlen an und lösen dies natürlich mit C++ 😃 :

    #include <iostream>
    #include <cmath>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
      const int fixzahl = 288;
    
      for( int i=1; i<=static_cast<int>(sqrt(static_cast<double>(fixzahl))); ++i)
      {
        if(( fixzahl%i ) == 0 ) 
        {
          cout << i << " * " << fixzahl/i << " = " << 288 << endl;
        }
      }
      getch();
    }
    

    Das bringt man dem Auftraggeber. Wenn der dann sagt, ich will aber auch noch Fließkommazahlen und auch negative Zahlen, na dann eben auch dies. Volkard möchte natürlich noch alle imaginären und wasweißichwas. 🕶



  • Erhard Henkes schrieb:

    Das bringt man dem Auftraggeber. Wenn der dann sagt, ich will aber auch noch Fließkommazahlen und auch negative Zahlen, na dann eben auch dies.

    bitte passe dein programm an, daß es auch fließkommezahlen und negative zahlen macht und poste die ausgabe hier.



  • @volkard
    fiesling 😉



  • Das ist wieder typisch! Du versuchst mich mit der Unendlichkeit zu foppen, aber in der Computer-Realität gibt es Auflösungsgrenzen für den Typ long double (wir beschränken uns brav auf den C++-Standard). Damit ist der kleinste auflösbare Abstand festgelegt und abbildbar. Er ist eben nicht limes gegen null. Damit ist die Aufgabe in der Praxis irgendwie lösbar. Mit dem imaginären bist Du mir bei einer positiven Zahl nicht auf den Leim gegangen, das war klar. 😃

    Warum aber 288 und nicht 42 ? Darüber denke ich nach. 😉

    Jetzt nicht gleich coden, sondern erst mal die Antwort des Auftraggebers abwarten. Immer hübsch iterativ vorgehen. 🙂



  • Erhard Henkes schrieb:

    Das ist wieder typisch! Du versuchst mich mit der Unendlichkeit zu foppen, aber in der Computer-Realität gibt es Auflösungsgrenzen für den Typ long double (wir beschränken uns brav auf den C++-Standard). Damit ist der kleinste auflösbare Abstand festgelegt und abbildbar. Er ist eben nicht limes gegen null. Damit ist die Aufgabe in der Praxis irgendwie lösbar.

    die endlichkeit war mir auch klar. aber selbst wenn du float verwendest, wird die liste verdammt lang und selbst der gutmütigste arbeitgeber würde sie als schwachsinnig abtun.



  • ich vins ein super,an dann prifu

    also ich schreibe euch was per text wenn ihr lest muss ich gehen ok



  • Nur um nochmal zur ursprünglichen Aufgabe zurückzukommen:
    Man drückt einen x-beliebigen Mönch eine Feuerwaffe in die Hand und erteilt ihm den Auftrag, alle Mönche mit einem schwarzen Punkt auf der Stirn umzubringen. Wenn er alle erkrankten Mönche umgebracht hat, gibt er einen gesunden Mönch die Feuerwaffe und der muß den ersten Mönch, wenn er denn erkrankt ist, ebenfalls umbringen.
    Dieser Algorithmus terminiert nicht, wenn a.) Alle Mönche erkrankt sind oder b.) wenn den Mönchen das Morden untersagt ist.

    PS: Was für eine blutige Aufgabe 🙄



  • jo das ist korect wen man ünnerlegt aber wenn nich muss man kucken weil das dann icht stimmt und so



  • Ganz einfach.
    Jeder Mönch schneidet sich ein Stück aus der Stirn heraus. Das macht einer beim Essen - jeder sieht es - sie kapieren es und machen es alle. Da müssen sie nicht mal einen Tag warten...

    btw: Aua! 😉

    /E: Und der der es nicht kapiert und der Kranke ist wird erschossen - soviel Dummheit muss bestraft werden.



  • Für positive Fließkommazahlen habe ich mal was gecodet:

    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
      const long double fixzahl = 288   ;
            long double diff    = 1.0   ;
      const int         pr      = 11    ;
      const bool        flag    = false ;
            long double zahl    = 0.0   ;
            long long   laenge  = 0     ;
    
      for( int i=0; i>-15; --i )
      {
        while( zahl <= sqrt( fixzahl ) )
        {
          zahl += diff;
          if( flag )
          { 
            cout << setprecision(pr) <<  zahl  << " * " 
                 << fixzahl/zahl << endl;
          }
          ++laenge;
        }
        cout << "Differenz: " << diff 
             <<" Laenge der Liste: " << laenge << endl;
        diff  /= 10.0 ;
        laenge = 0    ;
        zahl   = 0.0  ;
      }
      getch();
    }
    

    Man sieht hieran deutlich, dass ein Computer nicht brauchbar rechnen kann, wenn man mit dem Taschenrechner nachprüft.

    @Volkard: halbwegs zufrieden? 😃


Anmelden zum Antworten