Upload
cocodrips
View
81.869
Download
4
Embed Size (px)
Citation preview
つよくなるための プログラミング
@cocodrips
1
おまえだれ?2
名前 : くーむ ( o・ω・)ノ Twitter : @cocodrips 職業 : ゲームプログラマ(Lv.1) すきなもの : Python / C++ / js ブログ : ぴよぴよ.py
プログラミングコンテストとは?3
参加者がそれぞれ問題を解いて、 解くスピード、正確さ、スコアを競いあって
青春するイベント
様々なジャンルのコンテスト4
長い(数週間)
だれでもできる
2時間
アルゴリズム
セキュリティ
専門知識が必要
開催期間
サーバ インフラ
ゲームAI
データマイニング
1 2
345
紹介するコンテストについて5
参加資格の制限がないコンテスト
アイディアを競うようなコンテスト
Pythonで参加できるコンテスト
コンテストに参加する利点6
コンテストに参加する利点7
1自分と同じ問題を解いた、 他の人の解法を知ることができる
コンテストに参加する利点8
1自分と同じ問題を解いた、 他の人の解法を知ることができる
2同じコンテストに出ていた、 たくさんのライバルと知り合える
アルゴリズムの コンテスト紹介
9
アルゴリズムのコンテスト10
長い(数週間)2時間
アルゴリズム
セキュリティ
開催期間
サーバ インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
アルゴリズムのコンテスト- 問題例11
有る長方形の3つの辺の長さが与えられる。 残り1つの辺の長さを求めよ。
(Atcoder Beginner Contest 027A)
?
アルゴリズムのコンテスト- 問題例12
アルゴリズムのコンテスト- 問題例13
N段の階段があります。あなたは一歩で1段、2段、もしくは3段登ることができます。 考えうる階段の登り方は何通りありますか?答えを1000000007で割った数を出力しなさい。0<N<105 時間制限:2秒, スタック・メモリ制限:256MB
アルゴリズムのコンテスト- 問題例14
N段の降り方 = 1段降りて、残り(N - 1)段の降り方 + 2段降りて、残り(N - 2)段の降り方 + 3段降りて、残り(N - 3)段の降り方
アルゴリズムのコンテスト- 問題例15
アルゴリズムのコンテスト- 問題例16
1 計算時間を見積もってみよう!
2 デフォルトでのPythonの 再帰回数の限界を調べてみよう!maximum recursion depth
アルゴリズムのコンテストとは17
与えられた問題に対して 解くはやさと正確さを競う
1 外部ライブラリ使用不可
2 速く解くほど点数が高い
3 順位に応じて自分のレーティングが変化する
アルゴリズムのコンテストのよさ18
1 基本的なデータ構造の使い方を学べる
2 一瞬で計算量を見積もれるようになる
3 標準ライブラリや、言語仕様に詳しくなる
4 1~2時間程度の短時間なコンテスト
19
TopCoder
SRM (するめ)おてがる かんたんPython適性
Div1
定期 開催型
競技プログラミングといえばTopCoder SRM! SRMのレーティングで競技プログラマとしての格が決まる?! 目指せ Red Coder! !アルゴリズムというよりも、数学よりの問題が多いのが特徴 Div 1 / Div 2 : 3問 / 75分 + 撃墜フェーズ 15分 開催頻度 : 月に4回程度 次回開催 : 10/11(日) 1:00~, 10/15(木) 0:00
Div2
RedCoder
https://www.topcoder.com/
アルゴリズムのコンテスト - 紹介
20
CodeForcesおてがる かんたんPython適性
Div1Div2
今夜は家で6000人のプログラマと戦おう! 今1番勢いのある競技プログラミングコンテスト!!! !Div 1 / Div 2 : 5問 / 2時間 開催頻度 : 月に4回程度 次回開催 : 10/12(月) 18:00~20:00 毎回夜中の2時頃スタートなのを除けば最高…
定期 開催型
http://codeforces.com/
アルゴリズムのコンテスト - 紹介
アルゴリズムのコンテスト - 紹介21
AtCoderおてがる かんたんPython適性
アルゴリズムのコンテストならまずはここから! 毎週土曜日に開催される日本語のコンテスト 毎回終了後には解説がニコニコ生放送で見れるのも魅力! !初心者向け(ABC) : 4問 / 2時間 中級者向け(ARC) : 4問 / 1.5時間 開催頻度 : 毎週土曜日にABC/ARCどちらか 次回開催 : ARC 10/10(土) 21:00~22:30 ABC 10/24(土) 21:00~23:00 (予定)
定期 開催型
http://atcoder.jp/
@chokudai
社長
22
TopCoder Codeforces AtCoder(日本語)
開催頻度 月3回 月4回 毎週土曜日
問題の特徴 数学系 どちらかといえば アルゴリズム アルゴリズム重視
問題数と時間 3 5問/120分 4問/90分
PythonのVersion 2 2, 3 2, 3解ける人数
(%)
Topcoderの何色に相当するか Div2 Div1 Div2 Div1 ABC ARC
100% 11
22
4 21
32
0%
1
2
31
23
1
2
4
5
2
3
54
3 1 4
21
3
1
2
3
4
易
難
アルゴリズムのコンテスト - 比較
初心者におすすめ
神の領域
23
アルゴリズムのコンテスト - 勉強法
1 AtCoderのABCに出てみる
2 ABCの過去問を数回分解く
4 アルゴリズムコンテスト用の本を読む
3 TopCoder / CodeForces に出る
24
アルゴリズムのコンテスト - 技術書
競技プログラミングを 最近はじめた人におすすめ
もっともっと強く なりたい人におすすめ
どこでコンテスト探すの?25
TopCoder部のカレンダー
紹介したコンテストがいつ開催されるかわかる Googleカレンダーと連携するのがおすすめ!
ゲームAIの コンテスト紹介
26
ゲームAIのコンテスト27
とにかく強いゲームAIを作る
アルゴリズムのコンテスト28
長い(数週間)2時間
アルゴリズム
セキュリティ
開催期間
サーバ インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
ゲームAIのコンテスト29
ゲームAI30
Codingameおてがる かんたんPython適性
気軽にできる対戦型ゲームAIコンテスト コンテスト以外にも様々な練習用ゲームがある !開催期間 : 1日~1週間程度 開催頻度 : 月に1回程度 次回コンテスト : “CODE vs ZOMBIE” 11/29(日) 2:00 ~ 11/30(月) 2:00 (24h)
定期 開催型
ゲームAI31
CODE VSおてがる かんたんPython適性
プログラマが1番目立てるコンテスト 本選がニコファーレで開催! ニコニコ生放送デビュー!? !開催期間 : 1ヶ月程度 開催頻度 : 年に1回程度 次回コンテスト : 未定
イベント 型
ゲームAIコンテスト - 勉強法33
1 アルゴリズムコンテストで アルゴリズムの基礎を学ぶ
2
3
自己流アルゴリズムで Codingameに出てみる
ゲームAIやMMでよく使う アルゴリズムを学ぶ
ゲームAIコンテスト - 勉強法34
1 アルゴリズムコンテストで アルゴリズムの基礎を学ぶ
2
3
自己流アルゴリズムで Codingameに出てみる
ゲームAIやMMでよく使う アルゴリズムを学ぶ
1 codingameに出る
2 codingameに出る
3 codingameに出る
データマイニングの コンテスト
35
データマイニングのコンテスト36
長い(数週間)2時間
アルゴリズム
セキュリティ
開催期間
サーバ インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
データマイニングのコンテスト37
Kaggleおてがる かんたんPython適性https://www.kaggle.com/
定期 開催型
データマイニングでひとやま当てよう?! 常時10個程度のコンテストが開催されている 自分にあった分野のコンテストを探そう! !開催期間 : 数ヶ月程度 開催頻度 : 常時開催
データマイニングのコンテスト - 勉強法38
データマイニングのコンテスト - 勉強39
データマイニングのコンテスト - 勉40
データマイニングのコンテスト ………41
データマイニングのコンテスト orz42
データマイニング初心者なので、 よい勉強法がわかりません・・・・
(多分ここにはプロがいっぱいいるので迂闊なこと言えない・・・)
Kaggleのはじめかた43初心者目線での
Kaggleのはじめかた44初心者目線での
GettingStarted の練習問題に挑戦してみる
サーバ・インフラの コンテスト
45
サーバ/インフラのコンテスト46
長い(数週間)2時間
アルゴリズム
セキュリティ
開催期間
サーバ インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
サーバ/インフラ47
ISUCONおてがる かんたんPython適性
いい感じにスピードアップコンテスト(ISUCON) 日々の業務で培ったWeb総合力が試される!!!! 3人1組なので、チームを作るのが1番難しい… !開催期間 : 7時間程度 開催頻度 : 年に1回 予選 / 本選(オンサイト) 次回コンテスト : 未定(今年は予選が終了済み、10/31に本選)
イベント 型
http://isucon.net/
48
サーバ/インフラのコンテスト - 勉強法
1 ISUCONの過去問を解く
2 ISUCONの参加記や 解説を読む(公式サイトにリスト有り)
セキュリティの コンテスト
49
セキュリティのコンテスト50
長い(数週間)2時間
アルゴリズム
セキュリティ
開催期間
サーバ インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
セキュリティコンテスト-CTFとは?51
Capture The Flag (旗取り合戦) !
攻防戦方式 : 脆弱性のあるサービスが動いているサーバが与えられ、 敵チームのサーバからFlagを盗み取る !
クイズ方式 : Webサイトの脆弱性をつく / 暗号を解く / バイナリ解析 etc. !
問題: vzcbeg guvf52
Gur Mra bs Clguba, ol Gvz Crgref Ornhgvshy vf orggre guna htyl. Rkcyvpvg vf orggre guna vzcyvpvg.Fvzcyr vf orggre guna pbzcyrk.Pbzcyrk vf orggre guna pbzcyvpngrq. Syng vf orggre guna arfgrq.Fcnefr vf orggre guna qrafr. Ernqnovyvgl pbhagf. Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.Nygubhtu cenpgvpnyvgl orngf chevgl. Reebef fubhyq arire cnff fvyragyl. Hayrff rkcyvpvgyl fvyraprq.Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg. Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu. Abj vf orggre guna arire.Nygubhtu arire vf bsgra orggre guna *evtug* abj.Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!
問題: vzcbeg guvf53
Gur Mra bs Clguba, ol Gvz Crgref Ornhgvshy vf orggre guna htyl. Rkcyvpvg vf orggre guna vzcyvpvg.Fvzcyr vf orggre guna pbzcyrk.Pbzcyrk vf orggre guna pbzcyvpngrq. Syng vf orggre guna arfgrq.Fcnefr vf orggre guna qrafr. Ernqnovyvgl pbhagf. Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.Nygubhtu cenpgvpnyvgl orngf chevgl. Reebef fubhyq arire cnff fvyragyl. Hayrff rkcyvpvgyl fvyraprq.Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg. Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu. Abj vf orggre guna arire.Nygubhtu arire vf bsgra orggre guna *evtug* abj.Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!
string.decode(‘rot13’)
問題: import this54
The Zen of Python, by Tim Peters !Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
セキュリティコンテスト - 紹介55
SECCONおてがる かんたんPython適性
日本でCTFといえばSECCON 本選: 攻防戦方式 予選:クイズ形式 !開催期間 : 12 ~ 48時間程度 開催頻度 : 本選1回 + 予選7回 /年 次回コンテスト : オンライン予選 12/5(土) ~ 12/6(日)
http://2015.seccon.jp/
定期 開催型
セキュリティコンテスト - 勉強法56
1 ksnctf でCTFの問題に挑戦してみる
2 出たりCTF本を読んだりする
それ以上のことはわからないorz3 とかをチェックする
まとめ
58
様々なジャンルのコンテスト59
長い(数週間)
だれでもできる
2時間
アルゴリズム
セキュリティ
専門知識が必要
開催期間
サーバ インフラ
ゲームAI
データマイニング
伝えたいこと60
1プログラミングコンテストは 子どもも大人も楽しめる青春イベント!
2自分の解法と他の人の解法を比較して、 より良い解き方や書き方を知ろう
3様々なジャンルのコンテストがある! とにかく一度参加してみよう!
コンテスト予定!61
10/11(日) 1:00~, 10/15(木) 0:00TopCoder SRMCodeForces
AtCoder
アルゴリズム
ゲームAI
Codingame
セキュリティ
SECCON
10/12(月) 18:00~20:00
ARC 10/10(土) 21:00~22:30 ABC 10/24(土) 21:00~23:00 (予定)
11/29(日) 2:00 ~ 11/30(月) 2:00 (24h)
オンライン予選 12/5(土) ~ 12/6(日)
初心者におすすめ
参考 - アルゴリズム62
✦ yukicoder 競技プログラミング・アルゴリズムをに練習サイト http://yukicoder.me/
✦ TopCoder部のカレンダーhttps://topcoder.g.hatena.ne.jp/calendar
参考 - セキュリティ63
✦ CTFはとんでもないものを 盗んでいきました。私の時間です… http://www.slideshare.net/hiromu1996/it-31937461
✦ ksnctfhttp://ksnctf.sweetduet.info/