Suche senden
Hochladen
怪物曲線2 - evalの復習
•
2 gefällt mir
•
575 views
H
Hexomino Hexomino
Folgen
シェル芸を使用した空間充填曲線デモ 完全EVAL版 ゴスパーの流蛇 / シェルピンスキー曲線 / ペアノ曲線他
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 37
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
本日の怪物曲線 2016/6/18
本日の怪物曲線 2016/6/18
Hexomino Hexomino
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
hecomi
初級者向けレッスン 51回 ─── 例外
初級者向けレッスン 51回 ─── 例外
higaki
Spectacular Future with clojure.spec
Spectacular Future with clojure.spec
Kent Ohashi
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
charsbar
Everyday Life with clojure.spec
Everyday Life with clojure.spec
Kent Ohashi
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
Quineはじめました
Quineはじめました
satos___jp
Empfohlen
本日の怪物曲線 2016/6/18
本日の怪物曲線 2016/6/18
Hexomino Hexomino
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
hecomi
初級者向けレッスン 51回 ─── 例外
初級者向けレッスン 51回 ─── 例外
higaki
Spectacular Future with clojure.spec
Spectacular Future with clojure.spec
Kent Ohashi
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
charsbar
Everyday Life with clojure.spec
Everyday Life with clojure.spec
Kent Ohashi
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
Quineはじめました
Quineはじめました
satos___jp
Move semantics
Move semantics
mitsutaka_takeda
Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析
Mr. Vengineer
Composable Callbacks & Listeners
Composable Callbacks & Listeners
Taisuke Oe
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
Akka stream
Akka stream
Masaki Toyoshima
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
Ryuichi Ueda
Em synchrony について
Em synchrony について
Tomoya Kawanishi
VerilatorとSystemC
VerilatorとSystemC
Mr. Vengineer
Poolboy
Poolboy
Yusuke Muraoka
Nginx lua
Nginx lua
Moriyoshi Koizumi
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
2017年夏のPerl
2017年夏のPerl
charsbar
Testman
Testman
makoto tsuyuki
今さら始めるCoffeeScript
今さら始めるCoffeeScript
Ashitaba YOSHIOKA
pecl-AOPの紹介
pecl-AOPの紹介
Hiraku Nakano
Frege, What a Non-strict Language
Frege, What a Non-strict Language
y_taka_23
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
TanUkkii
Fourier transform
Fourier transform
ShinoharaTakuto
初めてのHaskell (表)
初めてのHaskell (表)
karky7
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)
mametter
Weitere ähnliche Inhalte
Was ist angesagt?
Move semantics
Move semantics
mitsutaka_takeda
Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析
Mr. Vengineer
Composable Callbacks & Listeners
Composable Callbacks & Listeners
Taisuke Oe
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
Akka stream
Akka stream
Masaki Toyoshima
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
Ryuichi Ueda
Em synchrony について
Em synchrony について
Tomoya Kawanishi
VerilatorとSystemC
VerilatorとSystemC
Mr. Vengineer
Poolboy
Poolboy
Yusuke Muraoka
Nginx lua
Nginx lua
Moriyoshi Koizumi
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
2017年夏のPerl
2017年夏のPerl
charsbar
Testman
Testman
makoto tsuyuki
今さら始めるCoffeeScript
今さら始めるCoffeeScript
Ashitaba YOSHIOKA
pecl-AOPの紹介
pecl-AOPの紹介
Hiraku Nakano
Frege, What a Non-strict Language
Frege, What a Non-strict Language
y_taka_23
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
TanUkkii
Was ist angesagt?
(18)
Move semantics
Move semantics
Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析
Composable Callbacks & Listeners
Composable Callbacks & Listeners
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Akka stream
Akka stream
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
Em synchrony について
Em synchrony について
VerilatorとSystemC
VerilatorとSystemC
Poolboy
Poolboy
Nginx lua
Nginx lua
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
2017年夏のPerl
2017年夏のPerl
Testman
Testman
今さら始めるCoffeeScript
今さら始めるCoffeeScript
pecl-AOPの紹介
pecl-AOPの紹介
Frege, What a Non-strict Language
Frege, What a Non-strict Language
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
Ähnlich wie 怪物曲線2 - evalの復習
Fourier transform
Fourier transform
ShinoharaTakuto
初めてのHaskell (表)
初めてのHaskell (表)
karky7
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)
mametter
詳説ぺちぺち
詳説ぺちぺち
do_aki
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
Hisatoshi Onishi
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Nobutada Matsubara
Data munging
Data munging
Hiroyuki Taira
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
mametter
Clojure programming-chapter-2
Clojure programming-chapter-2
Masao Kato
おれが考えた見やすい通知
おれが考えた見やすい通知
Yoshiyuki MIKAMI
Postgresql advent calender 2014 using jsonb by ecpg
Postgresql advent calender 2014 using jsonb by ecpg
Toshi Harada
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
Akinori Abe
ATSプログラミングチュートリアル
ATSプログラミングチュートリアル
Kiwamu Okabe
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
Deep Learning JP
メンテできないコードをメンテする技術
メンテできないコードをメンテする技術
Tomoya Ishida
拡張ライブラリ作成による高速化
拡張ライブラリ作成による高速化
Kazunori Jo
MoveEnginetopochangerMesh2
MoveEnginetopochangerMesh2
守淑 田村
文献紹介:Big Bird: Transformers for Longer Sequences
文献紹介:Big Bird: Transformers for Longer Sequences
Toru Tamaki
Ähnlich wie 怪物曲線2 - evalの復習
(20)
Fourier transform
Fourier transform
初めてのHaskell (表)
初めてのHaskell (表)
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)
詳説ぺちぺち
詳説ぺちぺち
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Data munging
Data munging
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Clojure programming-chapter-2
Clojure programming-chapter-2
おれが考えた見やすい通知
おれが考えた見やすい通知
Postgresql advent calender 2014 using jsonb by ecpg
Postgresql advent calender 2014 using jsonb by ecpg
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
ATSプログラミングチュートリアル
ATSプログラミングチュートリアル
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
メンテできないコードをメンテする技術
メンテできないコードをメンテする技術
拡張ライブラリ作成による高速化
拡張ライブラリ作成による高速化
MoveEnginetopochangerMesh2
MoveEnginetopochangerMesh2
文献紹介:Big Bird: Transformers for Longer Sequences
文献紹介:Big Bird: Transformers for Longer Sequences
怪物曲線2 - evalの復習
1.
本⽇も怪物曲線 ~ EVALの復習 ~ Return
of the EVAL
2.
⾃⼰紹介 Twitter: ヘキソミノ @Hexomino ネットワークエンジニア 外資系メーカ勤務 シェル芸勉強会参加
2014.12(#14)~
3.
今⽇のLTのきっかけ •私は⾃分の過去LTスライドを 眺めながらふと疑問を⽣じた 2016.6.18 (シェル芸#23) LT
4.
きっかけ • ⼀年半前 私はゴスパーの流蛇を
sed + AWK で実現 • 当時 私はEVALでは不可能と信じていた • それは果たして真実だったのだろうか? echo xx | sed "s:.:| sed 's/^/S/;y/AB/CD/;s/C/ALBLLBRARRAARBL/g;s/D/RALBBLL BLARRARB/g':g;s:^:echo A :;" | sh | awk '{match($0,/^S*/);deg=RLENGTH;print "from turtle import *;speed(0);pensize(2);ms=min(screensize())*.95;l=m s*sqrt(3)/(sqrt(7)**" deg ");up();setpos(- ms*sqrt(3)/2,-ms/2);down();rt(atan(sqrt(3)/5)*" deg "*180/pi);" $0 "done();"}' | sed 's/S//g;s/LR//g;s/L/lt(60);/g;s/R/rt(60);/g;s/[AB] /fd(l);/g;' | python
5.
(⾃問) EVAL修⾏が⾜りない のではないか?
6.
私は⿃海師匠のEVAL芸を よく理解していなかった ⿃海師匠によるヒルベルト曲線 l='L${r}FR${l}F${l}RF${r}L' r='R${l}FL${r}F${r}LF${l}R' eval eval
eval eval eval eval l= r= eval echo '$l' | { read a; b=${a%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*0.8;l=2*ms/(2* *${#b}-1);up();setpos(-ms,-ms);down();${a}done()"; } | sed 's/L/lt(90);/g;s/R/rt(90);/g;s/F/fd(l);/g' | python これは何を 意味するのか?
7.
研鑽を積むべく私は EVAL修⾏を開始した
8.
修⾏1. ネイピア数を求める $ eval
echo 1 '+1/¥(1 ¥*{1..'{1..20}'} ¥)' | bc -l 2.71828182845904523525
9.
修⾏1. ネイピア数を求める echo 1 +1/(1 *1
) +1/(1 *1 *2 ) .. +1/(1 *1 *2 *3 *4 *5 *6 *7 *8 *9 *10 … *20 ) eval echo 1 '+1/¥(1 ¥*{1..'{1..20}'} ¥)' eval echo 1 '+1/¥(1 ¥*{1..1} ¥)' '+1/¥(1 ¥*{1..2} ¥)' .. '+1/¥(1 ¥*{1..20} ¥)' リテラル リテラル ブレース展開 ブレース展開
10.
修⾏2. 素数を求める
11.
修⾏2. 素数を求める $ eval
eval ¥''n='¥''{1..'$(dc -e 1000vp)'}'¥'' eval eval eval echo '¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$(( '¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$n'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥'' *'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥'¥''{2..$(( 1000/n))}'¥'¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥'')) '¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥'';'¥' | tr ' ' ¥¥n | sort -n | uniq –u 2 3 5 7 .. 997 例: カースト最上位者が⽇常的に書く、素数を出⼒するワンライナー http://ja.uncyclopedia.info/wiki/シェル芸
12.
修⾏2. 素数を求める とあるカースト最上位者との会話 (回想) 素数のEVALワンライ ナーがよくわからない んですけど ああ
あれは そんなに 難しいことないですよ ……… (この部屋で…この部屋で理解してい ないのは俺だけなのだろうか……)
13.
修⾏2. 素数EVAL ワンライナーの解析
14.
修⾏2. 素数EVAL (1/5) eval
eval ¥''n='¥''{1..'$(dc -e 1000vp)'}'¥'' eval eval eval echo '¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$ (('¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$n'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥' ¥''*'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥'¥''{2..$(( 1000/n))}'¥'¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥'')) '¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥'';'¥' リテラル コマンド置換 eval 'n='{1..31}' eval eval eval echo '¥¥¥¥¥¥¥'¥¥¥' ¥''$(('¥'¥¥¥'¥''$n'¥'¥¥¥'¥''*'¥'¥¥¥'¥¥¥¥¥¥¥'¥''{2.. $((1000/n))}'¥'¥¥¥¥¥¥¥'¥¥¥'¥''))'¥'¥¥¥'¥¥¥¥¥¥¥'';'
15.
eval 'n='{1..31}' eval
eval eval echo '¥¥¥¥¥¥¥'¥¥¥' ¥''$(('¥'¥¥¥'¥''$n'¥'¥¥¥'¥''*'¥'¥¥¥'¥¥¥¥¥¥¥'¥''{2.. $((1000/n))}'¥'¥¥¥¥¥¥¥'¥¥¥'¥''))'¥'¥¥¥'¥¥¥¥¥¥¥'';' 修⾏2. 素数EVAL (2/5) n=1 eval eval eval echo ¥¥¥'¥''$(('¥''$n'¥'' *'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥'; .. n=31 eval eval eval echo ¥¥¥'¥''$(('¥''$n'¥'' *'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥'; リテラルブレース展開 n=1 .. n=31 の複数コマンドへ展開。 コマンド区切りのセミコロン ブレース展開でスペースを含める ためのクオーテーション
16.
eval eval echo
¥''$(('1'*'¥'{2..$((1000/1))}¥''))'¥'; .. eval eval echo ¥''$(('31'*'¥'{2..$((1000/31))}¥''))'¥'; 修⾏2. 素数EVAL (3/5) n=1 eval eval eval echo ¥¥¥'¥''$(('¥''$n' ¥''*'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥'; .. n=31 eval eval eval echo ¥¥¥'¥''$(('¥''$n' ¥''*'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥'; リテラル nの評価
17.
eval echo '$((1*'{2..1000}'))'; .. eval
echo '$((31*'{2..32}'))'; 修⾏2. 素数EVAL (4/5) eval eval echo ¥''$(('1'*'¥'{2..$((1000/1))}¥''))'¥'; .. eval eval echo ¥''$(('31'*'¥'{2..$((1000/31))}¥''))'¥'; リテラル 算術式展開
18.
echo $((1*2)) $((1*3))
.. $((1*1000)); .. echo $((31*2)) $((31*3)) .. $((31*32)); 修⾏2. 素数EVAL (5/5) eval echo '$((1*'{2..1000}'))'; .. eval echo '$((31*'{2..32}'))'; リテラル ブレース展開
19.
2 3 ..
1000 .. 62 93 .. 992 修⾏2. 素数EVAL 最終形 echo $((1*2)) $((1*3)) .. $((1*1000)); .. echo $((31*2)) $((31*3)) .. $((31*32)); 算術式展開 1の倍数 (1を除く) 31の倍数 (31を除く)
20.
私はEVALに⼀定の理解を得た 初回の評価 2回⽬の評価
21.
ヒルベルト曲線と ゴスパーの流蛇の違い ヒルベルト曲線: ⾃⼰相似形を挿⼊ ゴスパーの流蛇: ⾃⼰相似形に置換
22.
ゴスパーの流蛇シェル芸 EVALでやってみた a='S${a}L${b}LL${b}R${a}RR${a}${a}R${b}L' b='SR${a}L${b}${b}LL${b}L${a}RR${a}R${b}' eval eval
eval a='F' b='F' eval echo '${a}' | { read c; d=${c%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms*sqrt(3)/ (sqrt(7)**${#d});up();setpos(-ms*sqrt(3)/2,-ms/2);down ();rt(atan(sqrt(3)/5)*${#d}*180/pi);${c}done()"; } | sed 's/S //g;s/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python & • ゴスパー曲線(n=7)の写像 • A (正順) à SALBLLBRARRAARBL • B (逆順) à SRALBBLLBLARRARB • L: 60度左回転 • R: 60度右回転 • S: θ = Arctan√3/5 右回転 最後の変数定義を ヒルベルト曲線の a='' b='' eval から a='F' b='F' eval へと変更
23.
ゴスパーの流蛇 (n=7,深度3)
24.
拡張ゴスパー曲線 (n=13) a='SLL${b}R${a}RR${a}L${b}LL${b}R${a}${a}RR${a}R${b}L${a}R${b}LL${b}L${a}R' b='SL${b}R${a}RR${a}L${b}R${a}L${b}LL${b}${b}L${a}RR${a}R${b}LL${b}L${a}RR' eval eval
eval a='F' b='F' eval echo '$a' | { read c; d=$(echo ${c%%F*} | tr -dc S); echo "from turtle import *;speed(0);pensize(2);ms=min(screensize ())*0.9;l=ms*sqrt(3)/(sqrt(13)**${#d});up();setpos(-ms*sqrt(3)/2,-ms/2); down();rt(atan(sqrt(3)/7)*${#d}*180/pi);${c}done()"; } | sed 's/S//g; s/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python & • ゴスパー曲線(n=13)の写像 • A (正順) à SLLBRARRALBLLBRAARRARBLARBLLBLAR • B (逆順) à SLBRARRALBRALBLLBBLARRARBLLBLARR • L: 60度左回転 • R: 60度右回転 • S: θ = Arctan√3/7 右回転
25.
拡張ゴスパー流蛇曲線 (n=13,深度3)
26.
👍
27.
前回の シェルピンスキー曲線 もスッキリしたい
28.
(再掲) シェルピンスキー曲線シェル芸 c='N${c}FR${c}LLLFFL${c}FR ${c}' eval eval
eval c= eval echo '$c' | { read a; b=${a%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=m in(screensize())*0.9;l=ms/ (2**${#b});up();setpos(- ms+l/2,- ms+l);down();L${a}FR${a}FR ${a}FR${a}FR done()"; } | sed 's/N//g;s/RLL//g;s/L/lt(45 );/g;s/R/rt(90);/g;s/FF/fd (l);/g;s:F:fd(l/sqrt(2));: g' | python この “${a}FR” 繰り返し 4回をスッキリしたい
29.
シェルピンスキー曲線シェル芸 EVAL改良編 c='${c}${c}${c}${c}' eval c=¥''${c}FR'¥'
eval c=¥¥¥'¥''S${ c}FR${c}LLLFFL${c}FR${c}'¥'¥¥¥' eval eval eval eval c= eval echo '${c}' | { read a; b=${a%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms/(2** ${#b});up();setpos(-ms+l/2,-ms+l);down();L${a} done()"; } | sed 's/S// g;s/RLL//g;s/L/lt(45);/g;s/R/rt(90);/g;s/FF/fd(l);/g;s:F:fd(l /sqrt(2));:g' | python & 素数EVALワンライナーの解析で得た知⾒を活⽤ c='S${c}FR${c}LLLFFL${c}FR${c}' L: 左へ45度回転 R: 右へ90度回転
30.
👍👍
31.
EVALを活⽤し 新作へ
32.
シェルピンスキーのガスケット a='L${b}R${a}R${b}L' b='R${a}L${b}L${a}R' eval
eval eval eval eval a='F' b='F' eval echo '$a' | { read c; d=${c%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms/2**(${#d }-1);up();setpos(-ms,-ms*sqrt(3)/2);down();${c}done()"; } | sed 's/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python & • A (正順) à LBRARBL • B (逆順) à RALBLAR • L: 60度左回転 • R: 60度右回転
33.
ペアノ曲線 a='S${a}F${b}F${a}RFR${b}F${a}F${b}LFL${a}F${b}F${a}' b='S${ b}F${a}F${b}LFL${a}F${b}F${a}RFR${b}F${a}F${b}' eval
eval eval a= b= eval echo '$a' | { read c; d=${c%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*.95;l=2*ms/(3** ${#d}-1);up();setpos(-ms,-ms);down();L${c}done()"; } | sed 's/S//g;s/L/lt(90);/g;s/R/rt(90);/g;s/F/fd(l);/g' | python & • A (正順) à AFBFARFRBFAFBLFLAFBFA • B (逆順) à BFAFBLFLAFBFARFRBFAFB • L: 90度左回転 • R: 90度右回転 参考: 空間充填曲線とフラクタル ISBN 4-431-70775-1
34.
ペアノ曲線 (オズグッド曲線) lr='${a}LFL${a}RFR${a}' rl='${a}RFR${a}LFL${a}'
eval a='S${ lr}RFR${rl}LFL${lr}' eval eval eval a='FF' eval echo ¥''$a'¥' | { read c; d=${c%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*.95;l=2*ms/(1.5*(3 **${#d})-.5);up();setpos(-ms,-ms);down();L${c}done()"; } | sed 's/S//g;s/L/lt(45);/g;s/R/rt(45);/g;s/FF/fd(l*sqrt(2 ));/g;s/F/fd(l*.5);/g' | python & 参考: 空間充填曲線とフラクタル ISBN 4-431-70775-1
35.
ルベーグ曲線 a='S${a}LCLL${f}RRCR${a}RCRRC${f}${f}CLLCL${a}LCLL${f}RRCR${a}' f='C${f}${f}C' eval eval
eval eval f='F' a='G' eval echo '$a' | { read c; d=${c%%G*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*.95;l=2*ms/(1.4*(2**${#d})- .4);up();setpos(-ms,-ms);down();L${c}done()"; } | sed 's/S// g;s/L/lt(45);/g;s/R/rt(45);/g;s/C/fd(l*. 2);/g;s/F/fd(l);/g;s/G/fd(l*sqrt(2));/g;' | python & 参考: 空間充填曲線とフラクタル ISBN 4-431-70775-1
36.
⾃⼰回避曲線 (固有名称不明) a='${a}${a}${a}' eval
a=¥''${a}RFR'¥' eval a=¥¥¥'¥''S${ a}RFR${a}LFLFL${a}LFRFRFLFRFRFL${a}'¥'¥¥¥' eval eval eval a='F' eval echo '$a' | { read c; d=${c%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms/(3*(2** ${#d})-2);up();setpos(-ms*(1-.5/4**${#d}),ms*sqrt(3)/2*(1- .5/4**${#d}));down();${c}done()"; } | sed 's/S// g;s/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python & 参考: KK62526のホームページ – ⾃⼰回避曲線 http://www.kk62526.server-shared.com/Lsys/SelfAvoiding.html
37.
修⾏3. MS PowerPointとの バックスラッシュの闘い (継続中) パワーポイントでのバックスラッシュの表⽰は全く無理なことなのでしょ うか? 検索して少し調べてみたのですが、あまりパワーポイントとバックスラッ シュについてのページがヒットせず、よく分からないままでいます。 どなたかご存知ありませんでしょうか? https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1319718508
Jetzt herunterladen