Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Kein virtual rätsel (leicht/mittel/schwer)

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 <
000
27.01.2004, 14:05 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:

Tour de Trance

Viel ist es nicht, was Reporter Ralf Radlos vom Ziel der Tour de Trance im Gedächtnis hängen blieb:

Die Fahrer haben die Vornamen Anna, Berta, Christa, Dirk und Emil

Die Nachnamen sind Hungerast, Platten, Krampf, Sturz und Achter

Die Farben ihrer Trikots waren gelb, rot, blau, weiß und schwarz

Dirk trug ein blaues Trikots

Die Nachnamen der Herren haben sechs Buchstaben

Sturz lief vor Hungerast ein

Der Träger des roten Trikots rollte direkt nach dem des gelben ins Ziel

Der Träger des schwarzen Trikots kam direkt nach Berta ins Ziel

Achter trug ein blaues Trikot

Christa kam nach Emil ins Ziel

Die Herren sind Dritter und Fünfter

Wie heißen die Fahrer, welche Trikots trugen sie und in welcher Reihenfolge rollten sie über die Ziellinie?



Weicheier sollen die Aufgabe durch Nachdenken lösen, (was mittelmäßig leicht ist)

Echte Programmierer sollen ein Programm schreiben,was die Lösung selbst ermittelt (und nicht einfach ausdruckt). Je nach verfolgten Ansatz kann das recht schwer sein, aber eben auch leicht.

Wirklich schlaue Leute aber finden die Lösung im Internet.
--
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
001
27.01.2004, 15:49 Uhr
kronos
Quotenfisch
(Operator)


weichei-lösung:
1 anna sturz gelb
2. berta hungerast rot
3. emil krampf schwarz
4. christa platten weiß
5. dirk achter blau
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 27.01.2004 um 15:49 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.01.2004, 17:10 Uhr
(un)wissender
Niveauwart


Andere Weicheilösung
(Warum ist es eigentlich härter im Internet zu gucken?)

1. Berta Sturz (weiß)
2. Anna Hungerast (schwarz)
3. Emil Krampf (gelb)
4. Christa Platten (rot)
5. Dirk Achter (blau)
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.01.2004, 18:27 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich habe nicht gesagt, daß es härter sei; ich meinte nur, daß das nur die richtig schlauen menschen machen. Das ist ein Unterschied.
--
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
004
27.01.2004, 21:06 Uhr
(un)wissender
Niveauwart


Die richtig Schlauen sehen die Lösung schneller als du im Internet gucken kannst, zum Glück gehöre ich nicht dazu.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.01.2004, 21:22 Uhr
(un)wissender
Niveauwart


Das folgende Programm ist ineffizient, unübersichtlich und erweckt den Anschein von Korrektheit.
Damit möchte ich demonstrieren, wie schlau ich bin, nachmachen ist nicht zu empfehlen!


C++:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int maxAnzahlLoesungen = 5;
int anzahlLoesungen = 0;
const int laenge = 5;
string vornamen[] =  {"Anna", "Berta", "Dirk", "Emil", "Christa"};
string nachnamen[] =  {"Hungerast", "Platten", "Krampf", "Sturz", "Achter" };
string trikotfarben[] = {"gelb", "rot", "blau", "weiß" , "schwarz" };
int platzierung[] = {1,2,3,4,5};

int findeString(string array[], const string &toFind)
{
    for(int i = 0; i < laenge; ++i) {
        if(array[i] == toFind)
            return i;
    }
    return -1000000;
}

int main() {
    const int laenge = 5;
    sort(vornamen, vornamen + laenge);
    sort(nachnamen, nachnamen + laenge);
    sort(trikotfarben, trikotfarben + laenge);
    sort(platzierung, platzierung + laenge);
    
    do {
        do {
            do {
                do {
                    //cout << "iter\n";
                    //Sturz vor Hungerast
                    if(platzierung[findeString(nachnamen, "Sturz")] >
                    platzierung[findeString(nachnamen, "Hungerast")])
                        continue;
            
                    //rot dirkt vor gelb
                    int indexRot = platzierung[findeString(trikotfarben, "rot")];
                    int indexGelb =  platzierung[findeString(trikotfarben, "gelb")];
                    if(indexRot != indexGelb - 1)        
                        continue;
        
                    //Achter hat blau
                    if(trikotfarben[findeString(nachnamen, "Achter")] != "blau")
                        continue;
        
                    //schwarzes Trikot nach Berta
                    if(platzierung[findeString(vornamen, "Berta")] >
                       platzierung[findeString(trikotfarben, "schwarz")])
                        continue;
        
                    //Christa kam nach Emil ins Ziel
                    if(platzierung[findeString(vornamen, "Christa")] <
                       platzierung[findeString(vornamen, "Emil")])
                        continue;
        
                    //Dirk überprüfen
                    int indexDirk = findeString(vornamen, "Dirk");
        
                    if(trikotfarben[indexDirk] != "blau")              
                        continue;      
        
                    if(nachnamen[indexDirk].size() != 6)
                        continue;
        
                    if(platzierung[indexDirk] != 3 && platzierung[indexDirk] != 5)
                        continue;
            
        
                    //Emil überprüfen
                    int indexEmil = findeString(vornamen, "Emil");                  
              
                    if(nachnamen[indexEmil].size() != 6)
                        continue;  
              
                    if(platzierung[indexEmil] != 3 && platzierung[indexEmil] != 5)
                        continue;
            
                    //Gewonnen
                    cout << "\n****************Loesung " << ++anzahlLoesungen
                         <<" *****************\n";
                    for(int i = 0; i < laenge; ++i)
                        cout << platzierung[i] << ". wurde " << vornamen[i]
                             << " " << nachnamen[i] << " mit dem "
                             << trikotfarben[i] << "en Trikot!\n";
                    
                    if(anzahlLoesungen == maxAnzahlLoesungen)
                        return 0;
        
                }while(next_permutation(vornamen, vornamen + laenge));
                sort(vornamen, vornamen + laenge);
            }while(next_permutation(nachnamen, nachnamen + laenge));
            sort(nachnamen, nachnamen + laenge);
        }while(next_permutation(trikotfarben, trikotfarben + laenge));
        sort(trikotfarben, trikotfarben + laenge);
    }while(next_permutation(platzierung, platzierung + laenge));
        
    return 0;
}




Bearbeitung:

Wer eine überflüssige Schleife oder eine überflüssige Variable findet, der darf sie behalten.


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 27.01.2004 um 21:33 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.01.2004, 21:29 Uhr
(un)wissender
Niveauwart


Hm, ich habe mal im Internet versucht was zu finden, allerdings bin ich am ende gelandet, habe also nichts gefunden.
Ok,ok, hatten wir schon.
--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 27.01.2004 um 21:31 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.01.2004, 21:48 Uhr
(un)wissender
Niveauwart


Nimmt man die eh obsolete äußere Schleife weg, dann komme ich auf exakt 30 Lösungen.
Ihr auch?
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
28.01.2004, 06:40 Uhr
virtual
Sexiest Bit alive
(Operator)


@(un)wissender
www.aboutit.de/view.php?ziel=/01/27/07.html Zeigt die Lösung.
--
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
009
28.01.2004, 10:15 Uhr
(un)wissender
Niveauwart


Hm, deren Programm gibt nur 2 Lösungen aus, was aber eindeutig zu wenig ist.
Dafür ist es schnell und verdammt viel Code, das wäre mir etwas zu aufwendig, nur um ein Rätsel zu lösen.
Rechenerzeit des Computers ist billig, aber meine nicht.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: