2014年8月8日 星期五

演算法quine python範例

Quine演算法為程式語言經過編譯之後
執行顯示出來的內容必須與原始碼相同

wiki介紹


原本以為很難
要描述顯示出來的內容必須再新添加內容
這樣顯示的內容又會再增加
好像無解一樣

實作後發現比想像中簡單多了

python範例:

s="quine"
v="s=v=l=n='n p="
l=':"()[]+\\'
n='\n'
p='print(v[:2]+l[1]+s+l[1]+n+v[2:4]+l[1]+v+l[1]+n+v[4:6]+v[8]+l+l[7]+v[8]+n+v[6:9]+l[7]+v[9]+v[8]+n+v[11:13]+v[8]+p+v[8]+n+p)'
print(v[:2]+l[1]+s+l[1]+n+v[2:4]+l[1]+v+l[1]+n+v[4:6]+v[8]+l+l[7]+v[8]+n+v[6:9]+l[7]+v[9]+v[8]+n+v[11:13]+v[8]+p+v[8]+n+p) 

複製code執行,顯示結果將會和code一模一樣