トップ «前の日記(2018-05-01(Tue)) 最新 次の日記(2018-05-06(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2018-05-02(Wed) まだ曇り

シェルスクリプトでもできるはず

まずはこれで。

$ n[1]=10
$ n[2]=2
 
$ for x in + - \* /
> do echo -n ${n[1]}${x}${n[2]}=
>    echo ${n[1]} "$x" ${n[2]} \ |
>    bc
> done
10+2=12
10-2=8
10*2=20
10/2=5

シェルスクリプトでも

1 から 9に演算子を入れて100にする問題は 解けた
想定したとおり、かなり遅いけど(以下、 i3-4130 3.40GHz にメモリ4GBのartfulにて) 。

$ time bash dumb.sh                                       
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 * 9  = 100          
1 + 2 + 3 - 4 * 5 + 6 * 7 + 8 * 9  = 100          
1 + 2 - 3 * 4 + 5 * 6 + 7 + 8 * 9  = 100          
1 + 2 - 3 * 4 - 5 + 6 * 7 + 8 * 9  = 100          
1 + 2 * 3 + 4 * 5 - 6 + 7 + 8 * 9  = 100          
1 + 2 * 3 * 4 * 5 / 6 + 7 + 8 * 9  = 100.00000000000000000000
1 - 2 + 3 * 4 * 5 + 6 * 7 + 8 - 9  = 100          
1 - 2 + 3 * 4 * 5 - 6 + 7 * 8 - 9  = 100          
1 - 2 * 3 + 4 * 5 + 6 + 7 + 8 * 9  = 100          
1 - 2 * 3 - 4 + 5 * 6 + 7 + 8 * 9  = 100          
1 - 2 * 3 - 4 - 5 + 6 * 7 + 8 * 9  = 100          
1 * 2 * 3 + 4 + 5 + 6 + 7 + 8 * 9  = 100          
1 * 2 * 3 - 4 * 5 + 6 * 7 + 8 * 9  = 100          
1 * 2 * 3 * 4 + 5 + 6 + 7 * 8 + 9  = 100          
1 * 2 * 3 * 4 + 5 + 6 - 7 + 8 * 9  = 100          
 
real    1m50.571s        
user    1m56.217s        
sys     0m24.385s
if [ $total = 100 -o $total = 100.00000000000000000000 ]; then

整数でない解一つ(100.00000000000000000000)を条件分岐に 放り込んだのはあまり良くなかったかも。

lua5.1で動くようにする

今度は5.2以上で動かなくなってしまった。
結局 元に戻す

8段ループは流石にやめたほうが

少し書き換える。少し遅くなったようだ。

$ time python3 dumb.py
.
1 * 2 * 3 * 4 + 5 + 6 + 7 * 8 + 9 = 100
1 * 2 * 3 * 4 + 5 + 6 - 7 + 8 * 9 = 100
 
real    0m0.894s
user    0m0.890s
sys     0m0.004s
$ time python3 d2.py
.
1 * 2 * 3 * 4 + 5 + 6 + 7 * 8 + 9 = 100
1 * 2 * 3 * 4 + 5 + 6 - 7 + 8 * 9 = 100
 
real    0m0.979s
user    0m0.971s
sys     0m0.008s

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。