Thguoht Peed

生命、宇宙、万物についての答えが 42 であることは常識中の常識です。しかし、逆に 42 と加減乗除だけを使って "The Answer to Life, the Universe, and Everything" を再構成することはできるのでしょうか。
私はこの大問題について、2 日間という長期に渡り苦しくも充実した研究行った末、ついに下のようなプログラムを作ることに成功しました。
現在私はこのプログラムに ThguohtPeed.rb という名前をつけ、様々な数値を与えて反応を観察しているところです。もうちょっとダイエットさせたいなぁ。

#!/usr/local/bin/ruby

n=42
if $*.size > 0
    n=$*[0].to_i
end

str = ""
str << (n+n) #T
str << (n+n+n*n/(n+n)-n/n) #h
str << (n+n+n*n/(n+n+n)+(n+n+n)/n) #e
str << (n-(n*n-n-n)/(n+n+n+n)) #' '
str << (n+n*n/(n+n)+(n+n)/n) #A
str << (n+n+n-n*n/(n+n+n)-(n+n)/n) #n
str << (n+n+n-(n*n+n+n)/(n+n+n+n)) #s
# n の使用数が少ない w。
str << (((n+n+n)*(n-(n+n)/n)-n)/n) #w
# 計算式が短い w。2 種類。
#str << (n+n+n-n*n/(n+n+n+n+n+n)) #w
#str << (n+n+n-(n+n+n+n+n+n+n)/n) #w
str << (n+n+n*n/(n+n)-(n+n+n+n)/n) #e
str << ((n+n+n)*(n-(n+n+n+n)/n)/n) #r
str << (n-(n*n-n-n)/(n+n+n+n)) #' '
str << (n+n+n-(n*n-n-n)/(n+n+n+n)) #t
str << (n+n+n-n*n/(n+n+n)-n/n) #o
str << (n-(n*n-n-n)/(n+n+n+n)) #' '
str << ((n-(n+n+n+n)/n)*(n+n)/n) #L
str << (n+n+n*n/(n+n)) #i
str << (n+n+n*n/(n+n)-(n+n+n)/n) #f
str << (n+n+n*n/(n+n+n)+(n+n+n)/n) #e
str << (n+(n+n)/n) #,
str << (n-(n*n-n-n)/(n+n+n+n)) #' '
str << (n+n+n-(n*n-n-n)/(n+n+n+n)) #t
str << (n+n+n*n/(n+n)-n/n) #h
str << (n+n+n*n/(n+n)-(n+n+n+n)/n) #e
str << (n-(n*n-n-n)/(n+n+n+n)) #' '
str << (n+n+n/n) #U
str << (n+n+n-n*n/(n+n+n)-(n+n)/n) #n
str << (n+n+n*n/(n+n)) #i
str << (n+n+n-(n+n)*(n+n+n+n)/n/n) #v
str << (n+n+n*n/(n+n+n)+(n+n+n)/n) #e
str << ((n+n+n)*(n-(n+n+n+n)/n)/n) #r
str << (n+n+n-(n*n+n+n)/(n+n+n+n)) #s
str << (n+n+n*n/(n+n)-(n+n+n+n)/n) #e
str << (n+(n+n)/n) #,
str << (n-(n*n-n-n)/(n+n+n+n)) #' '
str << (n+n+n*n/(n+n+n)-n/n) #a
str << (n+n+n-n*n/(n+n+n)-(n+n)/n) #n
str << (n+n+n*n/(n+n+n)+(n+n)/n) #d
str << (n-(n*n-n-n)/(n+n+n+n)) #' '
str << (n+n-n*n/(n+n+n)-n/n) #E
str << (n+n+n-(n+n)*(n+n+n+n)/n/n) #v
str << (n+n+n*n/(n+n+n)+(n+n+n)/n) #e
str << ((n+n+n)*(n-(n+n+n+n)/n)/n) #r
str << (n+n+n-(n+n+n+n+n)/n) #y
str << (n+n+n-(n*n-n-n)/(n+n+n+n)) #t
str << (n+n+n*n/(n+n)-n/n) #h
str << (n+n+n*n/(n+n)) #i
str << (n+n+n-n*n/(n+n+n)-(n+n)/n) #n
str << (n+n+n*n/(n+n)-(n+n)/n) #g

puts str

使いかたはこんな感じです。

% ./ThguohtPeed.rb
The Answer to Life, the Universe, and Everything
% ./ThguohtPeed.rb 42
The Answer to Life, the Universe, and Everything
% ./ThguohtPeed.rb 41
Reb ?lqtbo rm Jfcb+ reb Slfsboqb+ ^la Dsbovrefld	
% ./ThguohtPeed.rb 43
Vjg!Bqvzgu!wr!Nkhg-!wjg!Wqkyguvg-!cqf!Gygu|wjkqi