Programmierwettbewerb: Handel (Ergebnisse)

Vielen Dank an alle Teilnehmer des Programmierwettbewerbs ! Wir freuen uns, die endgültigen Ergebnisse des Wettbewerbs bekannt zu geben.

Der Wettbewerb umfasste 186 Entscheidungen. Wir haben, wie bereits angekündigt, ein Zwei-Runden-Turnier zwischen ihnen veranstaltet. Herzlichen Glückwunsch an die Gewinner:

  1. Asta - Preis 3000 USD .
  2. Silent Bob - Preis 2000 USD .
  3. Robert Speed - Preis 1000 USD .

Ein Teilnehmer erhält unter dem Pseudonym indutny einen Sonderpreis von 400 USD für die Entwicklung einer alternativen Arena zum Online-Testen von Lösungen mit größerer Bandbreite als der von uns bereitgestellten. Vielen Dank!

Die offizielle Ergebnistabelle finden Sie auf GitHub .

Lösungen


Alle Lösungen werden im Einreichungsverzeichnis veröffentlicht . In jedem Unterverzeichnis befindet sich ein solution.js Skript, das an den Tests teilgenommen hat. Wenn ein Teilnehmer ein Archiv mit Quelltexten gesendet hat, wird dessen Inhalt im Unterverzeichnis src abgelegt. Nur die letzten von jedem Teilnehmer gesendeten Entscheidungen wurden berücksichtigt (und veröffentlicht).

Startwerte


Wie versprochen haben wir den ersten Tweet von @SpringerTV , der nach dem Ende des Entscheidungsprozesses erschien, in ein zuvor veröffentlichtes Skript eingefügt . Dieses Tweet-Skript, das leicht modifiziert wurde, um die Ausgabe von zwei Teilsequenzen zu trennen, wird als seeds.js veröffentlicht .

Die ersten 500 ungeraden Mitglieder der Sequenz werden in die Datei round1.txt gestellt und in der ersten Runde verwendet.

Die ersten 500 geraden Mitglieder der Sequenz werden in die Datei final.txt gestellt und im Finale verwendet.

Statistiken


Die 186 Entscheidungen, die an der ersten Runde teilnahmen, bildeten 34.410 geordnete Paare. Es wurden nur so viele Sitzungen mit jedem der 500 Startwerte durchgeführt. Die Gesamtzahl der Sitzungen in der ersten Runde betrug 17 205 000. Jede Entscheidung nahm an 185 000 Sitzungen teil.

In 13.868.284 Sitzungen (80,6%) wurde eine Einigung erzielt. Das durchschnittliche Ergebnis der Sitzung betrug 5,8728 Punkte, und das durchschnittliche Ergebnis unter den Sitzungen, in denen eine Einigung erzielt wurde, betrug 7,2858 Punkte.

Die Verhandlungen wurden in 626.779 Sitzungen (3,64%) aus verschiedenen Gründen (ungültige Angebote, Ausnahmen, Ablauf der Frist) unterbrochen.

50 Entscheidungen erreichten das Finale. Sie bildeten 2.450 geordnete Paare, und wir testeten sie zusätzlich an weiteren 500 Samenwerten. Um die Finalisten zu bewerten, haben wir auch die Ergebnisse der Sitzungen zwischen ihnen aus der ersten Runde verwendet (jedoch nicht die Ergebnisse der Sitzungen, bei denen Entscheidungen getroffen wurden, die das Finale nicht erreichten). Somit wurden die Plätze unter den Top 50-Lösungen auf der Basis von Tests bei 1000 Samenwerten bestimmt. Die Gesamtzahl der Sitzungen betrug 2.450.000, und jede Entscheidung nahm an 98.000 Sitzungen teil.

Im Finale wurde in 2.358.913 Sitzungen eine Einigung erzielt (96,28%). Das durchschnittliche Ergebnis der Sitzung betrug 7,0275 Punkte, und das durchschnittliche Ergebnis unter den Sitzungen, in denen eine Einigung erzielt wurde, betrug 7,2899 Punkte. Es ist beeindruckend, wie gut die Top-50-Lösungen fast jede Gelegenheit nutzen, um einen Deal abzuschließen.

Im Finale wurden die Verhandlungen in 1.272 Sitzungen (0,05%) unterbrochen.

Sitzungsprotokolle


Die vollständigen Protokolle aller 17 205 000 Sitzungen der ersten Runde wurden im Archiv round1.tar.bz2 (2,1 GB) veröffentlicht, und die Protokolle von 2 450 000 Sitzungen des Finales wurden im Archiv final.tar.bz2 (322 MB) veröffentlicht. Der Inhalt dieser Archive überschneidet sich teilweise, da einige Sitzungen sowohl zur ersten als auch zur letzten Runde gehören.

In diesen Archiven gibt es in jeder Datei des Formulars S/AB.json ein Sitzungsprotokoll mit dem Startwert S , wobei Lösung A der erste Teilnehmer und Lösung B der zweite war.

Sie können den haggle.js --replay=LOG.json , um das Sitzungsprotokoll in einem lesbaren Format zu „reproduzieren“.

Wir werden interessiert sein, interessante Ansätze zur Analyse dieses Datenarrays in den Kommentaren zu sehen.

Ergebnistabellen


Symbole für offizielle Ergebnistabellen :

  • S : Anzahl der erzielten Punkte (dies ist Gegenstand des Wettbewerbs)
  • S / N : Durchschnittliches Sitzungsergebnis
  • A : Anzahl der Sitzungen wurde vereinbart
  • A / N : Prozentsatz der Sitzungen mit Einigung
  • S / A : Durchschnittliches Sitzungsergebnis mit erreichter Einigung
  • X : Anzahl der von diesem Teilnehmer abgebrochenen Sitzungen (aufgrund von Ausnahmen oder falschen Ergebnissen)

Die erste Tabelle zeigt die Ergebnisse der Finalisten, die zweite - die Ergebnisse von Entscheidungen, die das Finale nicht erreicht haben.

Nochmals vielen Dank an alle Teilnehmer!

Source: https://habr.com/ru/post/de420757/


All Articles