SlideShare a Scribd company logo
1 of 24
第8回
社内プログラミングコンテスト
結果発表会
素数大貧民
Copyright © Fixstars Corporation. All rights reserved.
26 Jun. 2020
問題
社内プログラミングコンテスト
これまでの社内プロコン
 第1回 「戸口調査データによる年収額の予測」
 データマイニング系の課題。ランダムフォレスト、ロジスティック回帰、多層パーセプトロ
ンによる誤差逆伝播法、素性に基づく行列因子分解など様々なアルゴリズムが群雄割拠。
 第2回 「6枚とれ!」
 カードゲーム「ニムト(nimmt!)」をプログラム同士で対戦。5人対戦による混沌・複雑さが
醍醐味。
 第3回 「ガイスター(GEISTER)」
 ボードゲーム「ガイスター」の対戦は、人間味あふれる駆け引きが重要。
 第4回 「コラッツリス(Collatzris)」
 「コラッツリス」はコラッツの数列とテトリスの華麗なるコラボレーション。巨大な数字と
の付き合い方が肝。
 第5回 「ライフゲームGO」
 この年に流行ったAlphaGoとPokémon GOにあやかって、対戦ライフゲーム「ライフゲー
ムGO」が誕生。先の読めない盤面にハラハラドキドキ。
 第6回 「量子リバーシ」
 観測されるまで我が石は存在する! くらえ、循環エンタングルメント!
 第7回 「ノードレス」
 グラフ構造を持つフィールド上で対戦する陣取りゲーム。3名による対戦で、相手を牽制し
つつのコマの置き方に四苦八苦。
問題を決めるまで
アイデア出し
 ゲームといえば…カードゲーム…2人対戦…複数人で遊ぶ
…グラフ問題…SNS…AI…量子…オセロ…囲碁…陣地取
り…タワーディフェンス系…自動運転…物体認識…マン
デルブロ集合…並列化…アーキテクチャ…言語…ゼロサ
ム…トレードオフ…プログラミング…強化学習…エージ
ェント作成…人口増加ゲーム…謎解きゲーム…暗号化…
ブロックチェーン…パンデミック…素数…素数大富豪
 ざっくり3ヶ月!
素数大富豪をコンピュータで
 人間だと計算や記憶力に限界があるけどコンピュータな
らどうだろう? → 素数大貧民
素数大貧民のルール
1. 3001枚のカードを4人のプレイヤーに199枚数ずつ配り、残ったカードは山札
として中央に積む。
2. 最初の親が手札から最初の数(最大5枚)を出し、以降順番に次のプレイヤーがカ
ードを出し重ねていく。
3. 次のプレイヤーは、手番が回ってきた時点で「場に出されたすべてのカードと
同じ枚数」かつ「直前に出された数より大きい数」しか出すことができない
4. 出せるカードがない時、もしくは戦略上出したくない時にはパスして、山札か
らカードを 5 枚引く。
5. 他のプレイヤー全員がパスし、再び場にあるカードを出したプレイヤーまで順
番が回ってきたらそのプレイヤーは親になる。
6. 2~5を繰り返し、手札がなくなるか、山札がなくなった時点でゲームが終了す
る。手札が一番少ないプレイヤーが勝利する。
対戦フロー
ただしくんとあけみさん
社内プロコン恒例のサンプルコード
ただしくん
 Python
 戦略: 手持ちのカードで条件に合いそうな数が素数かどう
か片っ端からチェックする
あけみさん
 C++11
 戦略: ただしくんの戦略に加えて、メルセンヌ素数切りが
可能かどうかチェックする
20名の方が参加 (敬称略・アルファベット順)
 ありがとうございます!
参加者
賞品
ギークが喜ぶ(?)
賞品 (1)
賞品 (2)
賞品 (3)
特別賞「特別ルールを使わなかったで賞」
Raspberry Pi 4 (技適対応版)
決まり手で特別ルールである「ベルフェカット」
および「メルセンカット」を一度も使わなかった
Tシャツと参加賞
素数大貧民カードゲーム
ジャッジシステムについて
プログラミングコンテスト公式サイト構築秘話
Webシステムについて
今回は、 Webシステムとして実施しました
 皆さんいかがでしたでしょうか?
開発チーム
 UXデザイン:*****, *****
 プログラム:*****, *****
 プロトタイプ:*****, ***** ※インターンにて
歴史
 9月:インターン2名がプロトタイプを完成
 11月~:プロトタイプをベースに本番を開発開始
 12月末完成予定だったが間に合わず、開催を遅らせてしまう・・
 コロナになり実施できるかドキドキに・・
 4月、5月、6月と段階的に機能公開してなんとか運営した
Webシステム化苦労話
 ツクールをつくーりながらは大変
 当社で開発中の SaaS Platform を利用
 実プロジェクトに適用して Platformを鍛える目的だったが、鍛えるこ
とが多すぎてプロコン開発のブレーキに
 しかし、 Platform の完成度はかなり向上!
 プロジェクト固有のことはたくさんある
 ツクールで作れる部分はすぐできた
 しかし、データ管理、UI/UXのブラッシュアップなど、プロジェクト固
有の機能にはやはり時間がかかった
 異常系も含めて仕様です!
 仕様検討が浅く、後追い的な作業が時間を浪費した
 仕様を深堀りしておくほど、実装が機械的に早くできることを再認識
 投稿したプログラムの異常系も考慮する必要があったw
対戦結果&プログラム解説
対戦方法
スコア算出
 全参加者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並列
最終ランキング (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
決まり手・統計データ
名前 スコア 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
コンテストを終えて
第8回社内プログラミングコンテスト
感想など
素数の扱い方に違いあり!?
 素数大貧民において、どのような戦略でどのように素数を扱うのか
皆さんの創意工夫が感じられてジャッジにも熱が入りました!
公式サイトとジャッジシステム
 今回から公式ウェブサイトとジャッジシステムが稼働したことで、
より参加しやすくなりました!
反省点
 コンテスト公表から複数の要因で当初の予定よりも締め切りが延び
てしまいご迷惑をおかけしました。すみません。
 本当はランキング更新ももっと頻繁に行いたかったのです。
 制御プログラムのバグの指摘等があり、検証などはもっと時間を取
るべきでした。
今年も社内プログラミングコンテストを開催しますので、ご
参加ください!

More Related Content

More from Fixstars Corporation

製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptxFixstars Corporation
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編Fixstars Corporation
 
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~Fixstars Corporation
 
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~Fixstars Corporation
 
株式会社フィックスターズの会社説明資料(抜粋)
株式会社フィックスターズの会社説明資料(抜粋)株式会社フィックスターズの会社説明資料(抜粋)
株式会社フィックスターズの会社説明資料(抜粋)Fixstars Corporation
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fixstars Corporation
 
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けてJetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けてFixstars Corporation
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~Fixstars Corporation
 
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化Fixstars Corporation
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門Fixstars Corporation
 
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)Fixstars Corporation
 
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)Fixstars Corporation
 
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方Fixstars Corporation
 
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術についてAIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術についてFixstars Corporation
 
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)Fixstars Corporation
 
第8回 社内プログラミングコンテスト 第1位 taiyo
第8回社内プログラミングコンテスト 第1位 taiyo第8回社内プログラミングコンテスト 第1位 taiyo
第8回 社内プログラミングコンテスト 第1位 taiyoFixstars Corporation
 
第8回 社内プログラミングコンテスト 第2位 fy999
第8回社内プログラミングコンテスト 第2位 fy999第8回社内プログラミングコンテスト 第2位 fy999
第8回 社内プログラミングコンテスト 第2位 fy999Fixstars Corporation
 

More from Fixstars Corporation (20)

製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
 
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
 
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
 
株式会社フィックスターズの会社説明資料(抜粋)
株式会社フィックスターズの会社説明資料(抜粋)株式会社フィックスターズの会社説明資料(抜粋)
株式会社フィックスターズの会社説明資料(抜粋)
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けてJetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
 
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
 
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
 
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
 
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術についてAIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
 
株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)株式会社フィックスターズ 会社説明資料(抜粋)
株式会社フィックスターズ 会社説明資料(抜粋)
 
第8回 社内プログラミングコンテスト 第1位 taiyo
第8回社内プログラミングコンテスト 第1位 taiyo第8回社内プログラミングコンテスト 第1位 taiyo
第8回 社内プログラミングコンテスト 第1位 taiyo
 
第8回 社内プログラミングコンテスト 第2位 fy999
第8回社内プログラミングコンテスト 第2位 fy999第8回社内プログラミングコンテスト 第2位 fy999
第8回 社内プログラミングコンテスト 第2位 fy999
 

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