WPC13
-
Ponto schrieb:
Dann wird der Sieger wohl die beste Wegsuche haben. Hätte ich nicht verratten, dass 341 möglich sind, hätten manche wohl die Suche früher abgebrochen.
weiß nicht. der weg bis 341 ist doch geradlinig.
spannender ist, ob 342 oder gar 343 gehen.
-
Da mein Algorithmus keine Harakirientscheidungen, a la rand() macht, kann ich den Erwartungswert genau ausrechnen. Dieser liegt bei 341.362786787123
-
volkard schrieb:
Ponto schrieb:
Dann wird der Sieger wohl die beste Wegsuche haben. Hätte ich nicht verratten, dass 341 möglich sind, hätten manche wohl die Suche früher abgebrochen.
weiß nicht. der weg bis 341 ist doch geradlinig.
spannender ist, ob 342 oder gar 343 gehen.Gilt 341 irgendwie als magische-grenze? hab ich was nicht mitbekommen? irgendne mathematische beweislage?
-
volkard schrieb:
Ponto schrieb:
Dann wird der Sieger wohl die beste Wegsuche haben. Hätte ich nicht verratten, dass 341 möglich sind, hätten manche wohl die Suche früher abgebrochen.
weiß nicht. der weg bis 341 ist doch geradlinig.
spannender ist, ob 342 oder gar 343 gehen.Ist spannender, aber man kann ja nicht 24 Stunden am Tag an dem Problem hängen
-
Ich ja, ich hab Ferien
-
-Foo- schrieb:
Gilt 341 irgendwie als magische-grenze? hab ich was nicht mitbekommen? irgendne mathematische beweislage?
Du kannst wie gesagt alle Instanzen auf dein Programm anwerfen, die es gibt, und einen Erwartungswert ausrechnen. Dieser hängt dann meiner Meinung nach davon ab, wie gut die Wegsuche ist. Du musst ja manchmal entscheiden wohin du als nächstes gehst, und nicht immer ist das Naheliegendste langfristig das Beste.
Hier mal Code zum Erzeugen aller Instanzen:
Erst die main:
int main(int argc, char *argv[]) { double total = 0.0; for(unsigned i= 0; i < 7372800; ++i ) { Wpc13 agent; World world(i); agent.solve(&world); total += (agent.getScore() * (world.getWeight()/225)); } cout.precision(15); cout << "Score: " << total << endl; }
World.h bekommt zwei Methoden und einen Datenmember:
World(unsigned int world); double getWeight(); double weight;
World::World(unsigned int world) : bumped_(false), monsterDead_(false), monsterDied_(false), weight(1.0) { for(int i=0; i<6; ++i) { field_[i][0] = field_[i][5] = boundary; field_[0][i] = field_[5][i] = boundary; } for (int i = 1; i != 5; ++i) { for(int j = 1; j != 5; ++j) { field_[i][j] = FieldState(0); } } int pos = (world % 15) + 1; world /= 15; int x = (pos%4) + 1; int y = (pos/4) + 1; field_[x][y] = FieldState(field_[x][y] | monster); pos = (world % 15) + 1; int xx = (pos%4) + 1; int yy = (pos/4) + 1; field_[xx][yy] = FieldState(field_[xx][yy] | gold); int traps = 0; for (int i = 1; i != 5; ++i) { for(int j = 1; j != 5; ++j) { if ((i == 1 and j == 1)) continue; if ((world % 2) == 0) { ++traps; weight *= 0.2; field_[i][j] = FieldState(field_[i][j] | pit); } else { weight *= 0.8; } world /= 2; } } } double World::getWeight() { return weight; }
\\EDIT: Code berichtigt
-
Ponto schrieb:
Ist spannender, aber man kann ja nicht 24 Stunden am Tag an dem Problem hängen
ja, man muß auch ebay machen, chatten und spielen, damit es nicht einseitig wird.
-
mein code hat nur noch eine schleife drin.
-
Klasse, und ich hab gut 900unübersichtliche zeilen, 20 funktionen und keine lust mehr, was drann zu ändern...
-
-Foo- schrieb:
Klasse, und ich hab gut 900unübersichtliche zeilen, 20 funktionen und keine lust mehr, was drann zu ändern...
316 zeilen
23 funktionen, davon 6 mit mehr als einem statement.
aber das ändert sich noch. bin froh, daß es nach dem redesign noch läuft.
aber noch habe ich nix, was mich über 341 bringt. morgend wird sich auszahlen, daß ich meinen neuen code ändern kann.
-
volkard schrieb:
mein code hat nur noch eine schleife drin.
Macht das das Ergebnis besser?
-
Hab 709+105 zeilen und 29 schleifen.
-
Ponto schrieb:
volkard schrieb:
mein code hat nur noch eine schleife drin.
Macht das das Ergebnis besser?
nee, überhaupt nicht.
ich hoffe nur, daß ich dadurch die möglichkeit hätte, ihn besser zu machen, wenn mir ein toller trick einfiele.aber ist wohl nicht so. 341 bleibt 341. ok, vielleicht habe ich nachkommastellen verbessert. ich werfe jetzt Pontos messprogramm an und schau morgen früh nach.
-
Ponto schrieb:
Da mein Algorithmus keine Harakirientscheidungen, a la rand() macht, kann ich den Erwartungswert genau ausrechnen. Dieser liegt bei 341.362786787123
auch mit dem korrigierten messprog?
ich bin jetzt leicht über 342.
-
Könnte dann die Aufgabenstellung aktualisiert werden, oder bleibt sie so wie sie ist ???
Devil
-
devil81 schrieb:
Könnte dann die Aufgabenstellung aktualisiert werden, oder bleibt sie so wie sie ist ???
Devil
Was sollte aktualisiert werden?
-
Ponto schrieb:
devil81 schrieb:
Könnte dann die Aufgabenstellung aktualisiert werden, oder bleibt sie so wie sie ist ???
Devil
Was sollte aktualisiert werden?
Dinge die hier im Thread stehen, sind nicht mit dem wpc Forum deckungsgleich.
So z.b. die Form wie was jetzt eingesandt werden soll etc.
-
devil81 schrieb:
Ponto schrieb:
Was sollte aktualisiert werden?
Dinge die hier im Thread stehen, sind nicht mit dem wpc Forum deckungsgleich.
So z.b. die Form wie was jetzt eingesandt werden soll etc.Ich denke mal, das wpc Forum ist die Referenz
-
Jo, kann ich machen
aber ist das wirklich sooo wichtig?
-
Jester schrieb:
Jo, kann ich machen
aber ist das wirklich sooo wichtig?
wollte nur damit wissen, welches nun die Anforderungen sind,
und ob sich was dran geändert hat.Devil