Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

第8回 社内プログラミングコンテスト 結果発表会

第8回社内プログラミングコンテスト結果発表会で使用した資料です。

  • Sé el primero en comentar

第8回 社内プログラミングコンテスト 結果発表会

  1. 1. 第8回 社内プログラミングコンテスト 結果発表会 素数大貧民 Copyright © Fixstars Corporation. All rights reserved. 26 Jun. 2020
  2. 2. 問題 社内プログラミングコンテスト
  3. 3. これまでの社内プロコン  第1回 「戸口調査データによる年収額の予測」  データマイニング系の課題。ランダムフォレスト、ロジスティック回帰、多層パーセプトロ ンによる誤差逆伝播法、素性に基づく行列因子分解など様々なアルゴリズムが群雄割拠。  第2回 「6枚とれ!」  カードゲーム「ニムト(nimmt!)」をプログラム同士で対戦。5人対戦による混沌・複雑さが 醍醐味。  第3回 「ガイスター(GEISTER)」  ボードゲーム「ガイスター」の対戦は、人間味あふれる駆け引きが重要。  第4回 「コラッツリス(Collatzris)」  「コラッツリス」はコラッツの数列とテトリスの華麗なるコラボレーション。巨大な数字と の付き合い方が肝。  第5回 「ライフゲームGO」  この年に流行ったAlphaGoとPokémon GOにあやかって、対戦ライフゲーム「ライフゲー ムGO」が誕生。先の読めない盤面にハラハラドキドキ。  第6回 「量子リバーシ」  観測されるまで我が石は存在する! くらえ、循環エンタングルメント!  第7回 「ノードレス」  グラフ構造を持つフィールド上で対戦する陣取りゲーム。3名による対戦で、相手を牽制し つつのコマの置き方に四苦八苦。
  4. 4. 問題を決めるまで アイデア出し  ゲームといえば…カードゲーム…2人対戦…複数人で遊ぶ …グラフ問題…SNS…AI…量子…オセロ…囲碁…陣地取 り…タワーディフェンス系…自動運転…物体認識…マン デルブロ集合…並列化…アーキテクチャ…言語…ゼロサ ム…トレードオフ…プログラミング…強化学習…エージ ェント作成…人口増加ゲーム…謎解きゲーム…暗号化… ブロックチェーン…パンデミック…素数…素数大富豪  ざっくり3ヶ月! 素数大富豪をコンピュータで  人間だと計算や記憶力に限界があるけどコンピュータな らどうだろう? → 素数大貧民
  5. 5. 素数大貧民のルール 1. 3001枚のカードを4人のプレイヤーに199枚数ずつ配り、残ったカードは山札 として中央に積む。 2. 最初の親が手札から最初の数(最大5枚)を出し、以降順番に次のプレイヤーがカ ードを出し重ねていく。 3. 次のプレイヤーは、手番が回ってきた時点で「場に出されたすべてのカードと 同じ枚数」かつ「直前に出された数より大きい数」しか出すことができない 4. 出せるカードがない時、もしくは戦略上出したくない時にはパスして、山札か らカードを 5 枚引く。 5. 他のプレイヤー全員がパスし、再び場にあるカードを出したプレイヤーまで順 番が回ってきたらそのプレイヤーは親になる。 6. 2~5を繰り返し、手札がなくなるか、山札がなくなった時点でゲームが終了す る。手札が一番少ないプレイヤーが勝利する。
  6. 6. 対戦フロー
  7. 7. ただしくんとあけみさん 社内プロコン恒例のサンプルコード ただしくん  Python  戦略: 手持ちのカードで条件に合いそうな数が素数かどう か片っ端からチェックする あけみさん  C++11  戦略: ただしくんの戦略に加えて、メルセンヌ素数切りが 可能かどうかチェックする
  8. 8. 20名の方が参加 (敬称略・アルファベット順)  ありがとうございます! 参加者
  9. 9. 賞品 ギークが喜ぶ(?)
  10. 10. 賞品 (1)
  11. 11. 賞品 (2)
  12. 12. 賞品 (3)
  13. 13. 特別賞「特別ルールを使わなかったで賞」 Raspberry Pi 4 (技適対応版) 決まり手で特別ルールである「ベルフェカット」 および「メルセンカット」を一度も使わなかった
  14. 14. Tシャツと参加賞
  15. 15. 素数大貧民カードゲーム
  16. 16. ジャッジシステムについて プログラミングコンテスト公式サイト構築秘話
  17. 17. Webシステムについて 今回は、 Webシステムとして実施しました  皆さんいかがでしたでしょうか? 開発チーム  UXデザイン:*****, *****  プログラム:*****, *****  プロトタイプ:*****, ***** ※インターンにて 歴史  9月:インターン2名がプロトタイプを完成  11月~:プロトタイプをベースに本番を開発開始  12月末完成予定だったが間に合わず、開催を遅らせてしまう・・  コロナになり実施できるかドキドキに・・  4月、5月、6月と段階的に機能公開してなんとか運営した
  18. 18. Webシステム化苦労話  ツクールをつくーりながらは大変  当社で開発中の SaaS Platform を利用  実プロジェクトに適用して Platformを鍛える目的だったが、鍛えるこ とが多すぎてプロコン開発のブレーキに  しかし、 Platform の完成度はかなり向上!  プロジェクト固有のことはたくさんある  ツクールで作れる部分はすぐできた  しかし、データ管理、UI/UXのブラッシュアップなど、プロジェクト固 有の機能にはやはり時間がかかった  異常系も含めて仕様です!  仕様検討が浅く、後追い的な作業が時間を浪費した  仕様を深堀りしておくほど、実装が機械的に早くできることを再認識  投稿したプログラムの異常系も考慮する必要があったw
  19. 19. 対戦結果&プログラム解説
  20. 20. 対戦方法 スコア算出  全参加者22名に対して総当たり戦を行う  22 𝐶4 = 7315  7315組 × 100回 × 4人対戦 = 2926000  各1330対戦 × 100回 × 22名 = 2926000  スコアは、1位1点、2位2点、3位3点  ただし、1位が同率の場合、1位2名2点、2位3点となる  対戦ごとのスコアの総和を最終スコアとする  最終スコアでランキングを行う 実行時間  一回の実行の時間制限は10秒  22人(内2人はただしくんとあけみさん)の総当たり戦  22 𝐶4 = 7315 × 100 回 = 731500  実行時間: 34時間程度×10並列
  21. 21. 最終ランキング (2020-5-29 12:00) 順位 ユーザ名 スコア 対戦数 平均 言語 最終投稿日時 備考 各133,000対戦×22名=全2,926,000対戦中 有効対戦数2,908,997対戦 / 最高スコア 133000点 / 最低スコア 532000点 1Taiyo 192505 132989 1.447 C++ 2020-05-21T22:06:09 2Fy999 222378 133000 1.672 C++ 2020-05-29T00:36:50 3logicmachine 241303 133000 1.814 C++ 2020-05-28T05:06:21 4****** 253981 133000 1.910 C++ 2020-05-28T18:15:26 5****** 256791 132971 1.931 Lisp 2020-04-14T01:44:20 6****** 263221 132996 1.979 Python 2020-05-18T18:26:17 7****** 274799 119967 2.066 Python 2020-05-28T15:42:49 8****** 297659 132999 2.238 Python 2020-05-29T00:49:49 9****** 322292 133000 2.423 C++ 2020-05-26T07:00:18 10****** 331771 132999 2.495 C++ 2020-04-16T12:30:11 11****** 349610 132837 2.629 Python 2020-05-28T15:26:01 12****** 353817 133000 2.660 C++ 2020-04-18T16:02:14 13****** 357887 131289 2.691 C++ 2020-05-28T13:12:55 14tadashi 369935 132983 2.781 Python 2020-05-13T02:57:54 サンプルコード 15****** 392098 132973 2.948 Python 2020-04-20T14:40:28 16****** 392124 133000 2.948 C++ 2020-04-17T20:54:11 17akemi 392345 133000 2.950 C++ 2020-05-13T04:07:15 サンプルコード 19****** 405570 132849 3.049 Python 2020-04-16T01:33:12 21****** 412736 133000 3.103 C++ 2020-04-21T14:58:18 18****** 401055 132998 3.015 C++ 2020-05-28T15:55:32 20****** 406707 131150 3.058 C++ 2020-05-29T02:32:15 22****** 440300 132997 3.311 C++ 2020-05-28T18:31:31
  22. 22. 決まり手・統計データ 名前 スコア BELPHEGOR MERSENNE ERROR OK 実行時間 1 Taiyo 192505 8543 15834 11 108612 7111.328 2 Fy999 222378 0 254 0 132746 27325.416 3 logicmachine 241303 0 262 0 132738 655013.082 4 ****** 253981 0 5245 0 127749 18718.469 5 ****** 256791 36 47367 29 85568 63754.257 6 ****** 263221 0 14085 4 118911 155312.752 7 ****** 274799 0 16971 13033 102996 208576.328 8 ****** 297659 0 11544 1 121455 96789.573 9 ****** 322292 357 31998 0 100645 4418.213 10 ****** 331771 0 712 1 132287 19771.344 11 ****** 349610 0 0 163 132837 31249.389 12 ****** 353817 0 3659 0 129341 51084.609 13 ****** 357887 80 1080 1711 130129 37528.763 14 tadashi 369935 0 201 17 132782 93927.933 15 ****** 392098 0 312 27 132661 88497.054 16 ****** 392124 0 240 0 132760 1216.178 17 ****** 392345 0 214 0 132786 16742.893 18 ****** 401055 0 260 2 132738 474615.865 19 ****** 405570 0 1425 151 131424 149972.968 20 ****** 406707 0 398 1850 130752 154694.243 21 ****** 412736 0 229 0 132771 15976.217 22 ****** 440300 0 221 3 132975 87828.134
  23. 23. コンテストを終えて 第8回社内プログラミングコンテスト
  24. 24. 感想など 素数の扱い方に違いあり!?  素数大貧民において、どのような戦略でどのように素数を扱うのか 皆さんの創意工夫が感じられてジャッジにも熱が入りました! 公式サイトとジャッジシステム  今回から公式ウェブサイトとジャッジシステムが稼働したことで、 より参加しやすくなりました! 反省点  コンテスト公表から複数の要因で当初の予定よりも締め切りが延び てしまいご迷惑をおかけしました。すみません。  本当はランキング更新ももっと頻繁に行いたかったのです。  制御プログラムのバグの指摘等があり、検証などはもっと時間を取 るべきでした。 今年も社内プログラミングコンテストを開催しますので、ご 参加ください!

×