制約をつけて遊ぼう

29
制約をつけて遊ぼう @tututen

Upload: fumihito-yokoyama

Post on 22-Jul-2015

173 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: 制約をつけて遊ぼう

制約をつけて遊ぼう@tututen

Page 2: 制約をつけて遊ぼう

$ echo 'C++' | sed -e 's/++//g'

Page 3: 制約をつけて遊ぼう

\Better C!!/

Page 4: 制約をつけて遊ぼう

自己紹介

Page 5: 制約をつけて遊ぼう

自己紹介

Twitter: @tututen

Pythonとかsh(bash?)を主に使用

CodeJP 2014でショートコーディングの出題しました

Page 7: 制約をつけて遊ぼう

python -c "exec('try:import SimpleHTTPServer as m\nexcept:import http.server as m');m.test(HandlerClass=m.SimpleHTTPRequestHandler)"

https://github.com/jsakamoto/MarkdownPresenter

Page 8: 制約をつけて遊ぼう

明々後日、再び旭川

これ→ http://www.arc-net.or.jp/arc-net/data/20150317-ITsemi.pdf

Page 9: 制約をつけて遊ぼう

制約?

普段書いてるコードを制約ありでプログラムを書いてみる

案外難しい

例:

できるだけバイト数を減らす→コードゴルフ

Page 10: 制約をつけて遊ぼう

今回ご紹介するお題

Page 11: 制約をつけて遊ぼう

1→32までの素数を表示

2 3 5 7 9 11 13 17 19 23 29 31

Page 12: 制約をつけて遊ぼう

http://ideone.com/Eo2Qxh

Page 13: 制約をつけて遊ぼう

今回ご紹介する制約

Page 14: 制約をつけて遊ぼう

数字リテラルを使わずに書こう!

Page 15: 制約をつけて遊ぼう

ソースで数字を使わない

i = 0; NG

Page 16: 制約をつけて遊ぼう

ソースで数字を使わない

i = 0; NG

i = a; OK

Page 17: 制約をつけて遊ぼう

i = 0; NG

i = a; OK

Page 18: 制約をつけて遊ぼう

では、数字をどう作るのか?

Page 19: 制約をつけて遊ぼう

方法は色々とある

Page 20: 制約をつけて遊ぼう

数字をコネコネ

int i; i = i - i; // 0

int i; i = i / i; // 1

int i; i = i / i + i / i; // 2

Page 21: 制約をつけて遊ぼう

数字をコネコネ

int i; i = (int)’¥n’; // 10

int i; i = (int)’ ‘; // 32

int i; i = (int)’a’; // 97

Page 22: 制約をつけて遊ぼう

てことでこの制約は余裕!

Page 23: 制約をつけて遊ぼう

http://ideone.com/5fplcU

Page 24: 制約をつけて遊ぼう

_人人人人_> 簡単 <‾Y^Y^Y‾

Page 25: 制約をつけて遊ぼう

追加お題:短くしようか

Page 26: 制約をつけて遊ぼう

http://ideone.com/sEkP2K

Page 27: 制約をつけて遊ぼう

_人人人人_> 簡単 <‾Y^Y^Y‾

Page 28: 制約をつけて遊ぼう

対戦しましょ?

Page 29: 制約をつけて遊ぼう

対戦しましょ?ご静聴ありがとうございました

Presented By momo_*(@tututen)