制約をつけて遊ぼう
TRANSCRIPT
![Page 1: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/1.jpg)
制約をつけて遊ぼう@tututen
![Page 2: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/2.jpg)
$ echo 'C++' | sed -e 's/++//g'
![Page 3: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/3.jpg)
\Better C!!/
![Page 4: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/4.jpg)
自己紹介
![Page 5: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/5.jpg)
自己紹介
Twitter: @tututen
Pythonとかsh(bash?)を主に使用
CodeJP 2014でショートコーディングの出題しました
![Page 7: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/7.jpg)
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: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/8.jpg)
明々後日、再び旭川
これ→ http://www.arc-net.or.jp/arc-net/data/20150317-ITsemi.pdf
![Page 9: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/9.jpg)
制約?
普段書いてるコードを制約ありでプログラムを書いてみる
案外難しい
例:
できるだけバイト数を減らす→コードゴルフ
![Page 10: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/10.jpg)
今回ご紹介するお題
![Page 11: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/11.jpg)
1→32までの素数を表示
2 3 5 7 9 11 13 17 19 23 29 31
![Page 13: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/13.jpg)
今回ご紹介する制約
![Page 14: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/14.jpg)
数字リテラルを使わずに書こう!
![Page 15: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/15.jpg)
ソースで数字を使わない
i = 0; NG
![Page 16: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/16.jpg)
ソースで数字を使わない
i = 0; NG
i = a; OK
![Page 17: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/17.jpg)
i = 0; NG
i = a; OK
![Page 18: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/18.jpg)
では、数字をどう作るのか?
![Page 19: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/19.jpg)
方法は色々とある
![Page 20: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/20.jpg)
数字をコネコネ
int i; i = i - i; // 0
int i; i = i / i; // 1
int i; i = i / i + i / i; // 2
![Page 21: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/21.jpg)
数字をコネコネ
int i; i = (int)’¥n’; // 10
int i; i = (int)’ ‘; // 32
int i; i = (int)’a’; // 97
![Page 22: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/22.jpg)
てことでこの制約は余裕!
![Page 24: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/24.jpg)
_人人人人_> 簡単 <‾Y^Y^Y‾
![Page 25: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/25.jpg)
追加お題:短くしようか
![Page 27: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/27.jpg)
_人人人人_> 簡単 <‾Y^Y^Y‾
![Page 28: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/28.jpg)
対戦しましょ?
![Page 29: 制約をつけて遊ぼう](https://reader030.vdocuments.pub/reader030/viewer/2022032715/55af7d9f1a28ab26368b457e/html5/thumbnails/29.jpg)
対戦しましょ?ご静聴ありがとうございました
Presented By momo_*(@tututen)