Suchergebnisse
Suchergebnisse 1-20 von insgesamt 95.
Der Fehler ist der leere Schleifenrumpf: C-/C++-Quelltext 1 for (i = schlange.begin(); i!=schlange.end(); ++i) /* -> */;/*< - */ Dadurch passiert während die Schleife den Iterator inkrementiert nichts, danach wird dann der mittlerweile hinter das letzte Listenelement zeigende Iterator dereferenziert. Edit: da war doch glatt noch jemand schneller
Zitat von »"Nox"« unter linux sind sogar die Dateizugriffe über sockets geregelt Da bringst du, glaube ich, etwas durcheinander. Unix folgt der Philosophie "Everything is a file." sockets sind also konzeptionell die Abbildung einer Netzwerkverbindung auf eine Datei, so dass die gewöhnlichen Eingabe-/Ausgabe-Funktionen (read()/write()), wie man sie für reguläre Dateien verwendet, auch zur Netzwerkkommunikation genutzt werden können. Im Gegensatz zu Windows, dessen Winsock getaufte Adaption der u...
Wie dir die Fehlermeldung schon sagt, schreibt dein Programm über den auf dem Heap reservierten Speicherbereich hinaus. Ein solcher Fehler wird zwar erst beim Aufruf von delete bzw. free bemerkt (da zu diesem Zeitpunkt bei einem Debug-Build die Heap-Datenstrukturen überprüft werden), der Fehler kann aber beliebig weit davor passiert sein. Eine Möglichkeit ist, dass du einen bereits wieder freigegebenen Bereich weiterverwendest. Diesen Fall kann deine RemoveTrack() Funktion erkennen: wenn die aus...
Sehe ich genauso ! Und wenn eine durchdachte Aufgabenstellung eben etwas mehr Zeit benötigt, dann ist das eben so. Gute Ideen kann man schließlich nicht erzwingen Dickes Lob für die bisherigen Contests !
Nein. loop wird auf false initialisiert und bei einer falschen Eingabe auf true gesetzt. Und da das nicht wieder zurückgenommen wird, hat man eine Endlosschleife. Es fehlt einfach nur ein loop = false; in der Schleife vor dem switch-Statement.
Nicht ganz. Was passiert, wenn die erste Eingabe falsch war ? :p
Zitat von »"David Scherfgen"« Ich wüsste nicht, warum man das alles selbst machen sollte Zwei gute Gründe kann ich anbieten: Zum einen gibt es Features, die von den bislang hier genannten Bibliotheken nicht unterstützt werden. Zum Beispiel ein OpenGL3-Context. Oder exotische Eingabegeräte. Für letztere benötigt man unter Linux lowlevel Zugang zum X-Protokoll (der "Treiber" ist eine X-Anwendung, mit der man über selbst erzeugte Events kommuniziert). Zum anderen die gute alte Neugier. Wissen woll...
AABB-Ray Schnitt kann nach einem ganz einfachen Schema durchgeführt werden: Auf jeder der drei Koordinatenachsen ist eine an den Achsen ausgerichtete Box durch ein Intervall definiert. Du kannst ausrechnen, in welchem Intervall sich der Strahlparameter bewegen darf, so dass der Punkt innerhalb des gewünschten Abschnitts bleibt. Das kann das leere Intervall sein (Strahl verläuft senkrecht zur Koordinatenachse außerhalb des durch die Box definierten Intervalls), es kann das unendliche Intervall se...
Wenn dich die Details interessieren, wie eine GPU tickt, dann kann ein Blick in die Dokumentation von AMD lohnen. Lass dich aber bitte nicht davon abschrecken, wenn du zunächst nicht allzu viel verstehst (schließlich ist diese Dokumentation an Entwickler von Grafiktreibern gerichtet !). http://developer.amd.com/documentation/g…t.aspx#open_gpu Für einige interessante Einblicke kann ich R6xx Family Instruction Set Architecture empfehlen.
Crashkurs Grafikkarten Die einfachst denkbare Grafikkarten besteht nur aus ein etwas Speicher - dem Videoram - um das auf dem Monitor sichtbare Bild aufzunehmen, und einer speziellen Schaltung - dem sogenannten RAM-DAC - der diesen Speicher ausliest und in ein für den Monitor verständliches Signal umwandelt. Sämtliche grafischen Operationen, sei es das setzen eines einzelnen Pixels, das Füllen eines Rechtecks oder auch das Malen deines Browserfensters, werden von dem Prozessor (CPU) durch Schrei...
Herzlichen Glückwunsch an die beiden Gewinner !
Meine Lösungen für Addition, Subtraktion und Division sind Brute-Force-testbar (Addition benötigt auf meinem System 2:17min, Subtraktion schon 4:18min und die Division volle 37:30min) Für meine Multiplikation habe ich ja im Kommentar die Überlegung skizziert, mit der ich mich von der Korrektheit des Ansatzes überzeugt habe (hoffentlich nachvollziehbar).
Habe ich gerade gemacht. Und ich entschuldige mich jetzt schon mal für die miserable (sprich: exponentielle) Laufzeit meiner Multiplikation und Division. Ich habe zwar auch effizientere Lösungen gefunden - aber nicht mit weniger Token (liegen auskommentiert bei).
Mordraks Idee gefällt mir insofern, als das sein Ansatz richtig schön quer gedacht ist. Respekt ! Und ja, er funktioniert wunderbar. Aber irgendwie entspricht es - meiner persönlichen (!) Auslegung nach - möglicher Weise zwar den Buchstaben der Aufgabenstellung, aber weniger der Intention. Im Endeffekt erzeugt der Compiler daraus ja schließlich die verbotene Addition ! Erschwerend hinzu kommt, dass Mordrak den Ansatz bekannt gegeben hat. Und da die Addition so mit unschlagbar wenigen Token reali...
Verfolge das unbedingt weiter ! Ich will zu gerne sehen, wie du mit Zeiger-Arithmetik dividierst. Disqualifizieren kann dich David dann immer noch
Tolle Aufgabenstellung ! Allerdings mutet es schon reichlich merkwürdig an, dass der Modulo-Operator erlaubt ist. Das Thema Geschwindigkeit wird zumindest für David eine Rolle spielen: wenn ich meine Lösung (Division fehlt noch) mit allen denkbaren Aufgaben bombardiere (2^(16+16) Möglichkeiten), um die Korrektheit zu testen, dauert das schon ganz ordentlich ! Und David muss ja hoffentlich gaaanz viele Abgaben testen Jetzt muss ich aber erst noch die Division lösen (und das ohne Modulo, es leben ...
Zitat von »"Helmut"« @S.Seegel Also ich glaub man hat schon ziemliche OOP Komplexe, wenn man selbst bei so einem Contest reinterpret_cast benutzt und Token verschenkt Jetzt, wo du es sagst, muss ich zugeben, dass da noch ein (Singular!) Token zu holen gewesen wäre. C-/C++-Quelltext 1 n += ((long long*)data + 32)[index = index/8 | data[*p_roman_in++]]; Ich hatte ursprünglich statt den Offset auf long long umzurechnen geklammert, was ein Token mehr benötigt als der reinterpret_cast.
Herzliche Glückwunsch an Mordrak ! Da sind echt interessante Lösungen dabei (auch wenn ich über die eine oder andere noch ein wenig meditieren muss ). Danke an alle Teilnehmer !
Jetzt - da die Abgabe vorüber ist - kann ich noch von einem Bug im Tokencounter berichten, über den ich gestolpert bin (nicht, dass ihr aus der Tatsache, dass ich long long's verwende, all zu viel hättet machen können, aber wer weiß das schon) : hexadezimale Konstanten vom Typ long long werden als zwei Token gezählt: Quellcode 1 2 11: 0 12: x46803B403000000LL Dieselbe Konstante in Dezimalform wird korrekt als ein Token gezählt: Quellcode 1 11: 317507845408948224LL
Zu guter Letzt hab ich es noch auf 79 Token geschafft (also endlich die "Schallmauer" 80 überwunden). Ich bin sehr gespannt, mit welchen Ansätzen ihr das Problem gelöst habt, um mit noch weniger Token aus zukommen. Mir sind die Ideen ausgegangen :?