2017年11月30日木曜日
2017年11月14日火曜日
眼科の待合室で考えた
私は、検診のとき瞳孔を開くための目薬をさされると細かい字が読めなくなる。更にその後遺症で毎年苦労しているのでそれから解放されるのは大変ありがたいことだと思う。私はこの目薬をさされると4~5日は眼が充血し細かいものを見ることができなくなる(それも左目だけ!)。眼がチカチカして細かい字など読めなくなるから、今日は待ち時間に読むための書物や新聞などを持参しなかった。待たされている間に何もすることがない。どうするか。そうだ、あの問題を考えることにしよう。
その問題というのは、友人八卷氏がFacebook上に提起した次のような問題である。
『?*(?-?/?)=10 の?には一桁の異なる整数が入る』
私はこの問題に取り組んで待ち時間を有効に過ごすことにした。こういう問題を考えるのが私は大好きであるが、解けたと思って喜び勇んで答えを投稿すると、あに図らんや大抵は間違っていて恥をかくことになる。それでも楽しいと思う。
そういった失敗は問題を良く読んでいないから起るのだと思う。たとえば、ここでは「整数」とは何かをよく考える必要がある。当然負数も含まれることになるから気を付けよう。“/”で表現された「割り算」が含まれているが、普通コンピュータに詳しければ、どのような割り算なのか(つまり整数割り算か)を考えることになる。それからゼロによる割り算が発生しないよう注意することも必要である。
しかしこの問題ではそういう細部には一切触れられていない。ということは、特別な制限の付かない一般的な割り算だと解釈しなければならない。問題はより一層難しくなる。そういう時はPerl言語を使うのが一番良い。これはPerlで解くのに適した問題だ。それなら自分にも解けそうな気がする。
帰宅後、すぐさまコンピュータに向かってプログラム作りを始めることになった(眼がよく見えないというのに)。その結果できあがったプログラムが以下のものである。
|
#!/usr/local/bin/perl # (c) 2017-11-14 : Coded by shun kinoshita / knuhs # # 問題(八卷直一さんがFacebook上で提示したもの) # ?*(?-?/?)=10 の?には一桁の異なる整数が入ります。 # use strict; my $count=0; for( my $a=-9; $a<=9; $a++ ) { for( my $b=-9; $b<=9; $b++ ) { next if $a==$b ; for( my $c=-9; $c<=9; $c++ ) { next if $a==$c | $b==$c ; for( my $d=-9; $d<=9; $d++ ) { next if $a==$d | $b==$d | $c==$d | $d==0 ; next if $a*($b-$c/$d)!=10 ; $count++; print "[$count]:($a)*(($b)-($c)/($d))"; my $v = $a * ( $b - $c / $d ); print " = $v\n"; } } } } print "Total counts = $count\n"; exit; |
実行して見ると439個の解が得られた!! しかも、一度の実行ですぐ解が得られのだから、ものすごく気分が良い。これぞプログラム作りの醍醐味と言えるであろう。やはり考察に十分時間をかけたからだと思いたい。
ただ、このプログラムは私の期待通りに動作したと言えるが、それがこの問題の正解なのかどうか、それは私にも分からない。
|
[1]:(-9)*((-2)-(-8)/(9)) = 10 [2]:(-9)*((-1)-(1)/(9)) = 10 [3]:(-8)*((-3)-(-7)/(4)) = 10 [4]:(-8)*((-3)-(7)/(-4)) = 10 [5]:(-8)*((-2)-(-6)/(8)) = 10 [6]:(-8)*((-2)-(-3)/(4)) = 10 [7]:(-8)*((-2)-(3)/(-4)) = 10 [8]:(-8)*((-1)-(1)/(4)) = 10 [9]:(-8)*((-1)-(2)/(8)) = 10 [10]:(-8)*((0)-(-5)/(-4)) = 10 [11]:(-8)*((0)-(5)/(4)) = 10 [12]:(-8)*((1)-(-9)/(-4)) = 10 [13]:(-8)*((1)-(9)/(4)) = 10 [14]:(-7)*((-2)-(-4)/(7)) = 10 [15]:(-7)*((-1)-(3)/(7)) = 10 [16]:(-6)*((-4)-(-7)/(3)) = 10 [17]:(-6)*((-4)-(7)/(-3)) = 10 [18]:(-6)*((-3)-(-8)/(6)) = 10 [19]:(-6)*((-3)-(-4)/(3)) = 10 [20]:(-6)*((-2)-(-3)/(9)) = 10 [21]:(-6)*((-2)-(-1)/(3)) = 10 [22]:(-6)*((-2)-(1)/(-3)) = 10 [23]:(-6)*((-2)-(3)/(-9)) = 10 [24]:(-6)*((-1)-(-2)/(-3)) = 10 [25]:(-6)*((-1)-(2)/(3)) = 10 [26]:(-6)*((-1)-(4)/(6)) = 10 [27]:(-6)*((-1)-(6)/(9)) = 10 [28]:(-6)*((0)-(-5)/(-3)) = 10 [29]:(-6)*((0)-(5)/(3)) = 10 [30]:(-6)*((1)-(-8)/(-3)) = 10 [31]:(-6)*((1)-(8)/(3)) = 10 [32]:(-5)*((-9)-(-7)/(1)) = 10 [33]:(-5)*((-9)-(7)/(-1)) = 10 [34]:(-5)*((-8)-(-6)/(1)) = 10 [35]:(-5)*((-8)-(6)/(-1)) = 10 [36]:(-5)*((-7)-(5)/(-1)) = 10 [37]:(-5)*((-6)-(-8)/(2)) = 10 [38]:(-5)*((-6)-(-4)/(1)) = 10 [39]:(-5)*((-6)-(4)/(-1)) = 10 [40]:(-5)*((-6)-(8)/(-2)) = 10 [41]:(-5)*((-4)-(-8)/(4)) = 10 [42]:(-5)*((-4)-(-6)/(3)) = 10 [43]:(-5)*((-4)-(-2)/(1)) = 10 [44]:(-5)*((-4)-(2)/(-1)) = 10 [45]:(-5)*((-4)-(4)/(-2)) = 10 [46]:(-5)*((-4)-(6)/(-3)) = 10 [47]:(-5)*((-3)-(-9)/(9)) = 10 [48]:(-5)*((-3)-(-8)/(8)) = 10 [49]:(-5)*((-3)-(-7)/(7)) = 10 [50]:(-5)*((-3)-(-6)/(6)) = 10 [51]:(-5)*((-3)-(-4)/(4)) = 10 [52]:(-5)*((-3)-(-2)/(2)) = 10 [53]:(-5)*((-3)-(-1)/(1)) = 10 [54]:(-5)*((-3)-(1)/(-1)) = 10 [55]:(-5)*((-3)-(2)/(-2)) = 10 [56]:(-5)*((-3)-(4)/(-4)) = 10 [57]:(-5)*((-3)-(6)/(-6)) = 10 [58]:(-5)*((-3)-(7)/(-7)) = 10 [59]:(-5)*((-3)-(8)/(-8)) = 10 [60]:(-5)*((-3)-(9)/(-9)) = 10 [61]:(-5)*((-2)-(0)/(-9)) = 10 [62]:(-5)*((-2)-(0)/(-8)) = 10 [63]:(-5)*((-2)-(0)/(-7)) = 10 [64]:(-5)*((-2)-(0)/(-6)) = 10 [65]:(-5)*((-2)-(0)/(-4)) = 10 [66]:(-5)*((-2)-(0)/(-3)) = 10 [67]:(-5)*((-2)-(0)/(-1)) = 10 [68]:(-5)*((-2)-(0)/(1)) = 10 [69]:(-5)*((-2)-(0)/(2)) = 10 [70]:(-5)*((-2)-(0)/(3)) = 10 [71]:(-5)*((-2)-(0)/(4)) = 10 [72]:(-5)*((-2)-(0)/(5)) = 10 [73]:(-5)*((-2)-(0)/(6)) = 10 [74]:(-5)*((-2)-(0)/(7)) = 10 [75]:(-5)*((-2)-(0)/(8)) = 10 [76]:(-5)*((-2)-(0)/(9)) = 10 [77]:(-5)*((0)-(-8)/(-4)) = 10 [78]:(-5)*((0)-(-6)/(-3)) = 10 [79]:(-5)*((0)-(-4)/(-2)) = 10 [80]:(-5)*((0)-(-2)/(-1)) = 10 [81]:(-5)*((0)-(2)/(1)) = 10 [82]:(-5)*((0)-(4)/(2)) = 10 [83]:(-5)*((0)-(6)/(3)) = 10 [84]:(-5)*((0)-(8)/(4)) = 10 [85]:(-5)*((1)-(-9)/(-3)) = 10 [86]:(-5)*((1)-(-6)/(-2)) = 10 [87]:(-5)*((1)-(-3)/(-1)) = 10 [88]:(-5)*((1)-(6)/(2)) = 10 [89]:(-5)*((1)-(9)/(3)) = 10 [90]:(-5)*((2)-(-8)/(-2)) = 10 [91]:(-5)*((2)-(-4)/(-1)) = 10 [92]:(-5)*((2)-(4)/(1)) = 10 [93]:(-5)*((3)-(5)/(1)) = 10 [94]:(-5)*((4)-(-6)/(-1)) = 10 [95]:(-5)*((4)-(6)/(1)) = 10 [96]:(-5)*((5)-(-7)/(-1)) = 10 [97]:(-5)*((5)-(7)/(1)) = 10 [98]:(-5)*((6)-(-8)/(-1)) = 10 [99]:(-5)*((6)-(8)/(1)) = 10 [100]:(-5)*((7)-(-9)/(-1)) = 10 [101]:(-5)*((7)-(9)/(1)) = 10 [102]:(-4)*((-7)-(-9)/(2)) = 10 [103]:(-4)*((-7)-(9)/(-2)) = 10 [104]:(-4)*((-6)-(-7)/(2)) = 10 [105]:(-4)*((-6)-(7)/(-2)) = 10 [106]:(-4)*((-5)-(5)/(-2)) = 10 [107]:(-4)*((-3)-(-2)/(4)) = 10 [108]:(-4)*((-3)-(-1)/(2)) = 10 [109]:(-4)*((-3)-(1)/(-2)) = 10 [110]:(-4)*((-3)-(3)/(-6)) = 10 [111]:(-4)*((-3)-(4)/(-8)) = 10 [112]:(-4)*((-2)-(-3)/(-6)) = 10 [113]:(-4)*((-2)-(1)/(2)) = 10 [114]:(-4)*((-2)-(2)/(4)) = 10 [115]:(-4)*((-2)-(3)/(6)) = 10 [116]:(-4)*((-2)-(4)/(8)) = 10 [117]:(-4)*((-1)-(-9)/(-6)) = 10 [118]:(-4)*((-1)-(-3)/(-2)) = 10 [119]:(-4)*((-1)-(3)/(2)) = 10 [120]:(-4)*((-1)-(6)/(4)) = 10 [121]:(-4)*((-1)-(9)/(6)) = 10 [122]:(-4)*((0)-(-5)/(-2)) = 10 [123]:(-4)*((0)-(5)/(2)) = 10 [124]:(-4)*((1)-(-7)/(-2)) = 10 [125]:(-4)*((1)-(7)/(2)) = 10 [126]:(-4)*((2)-(-9)/(-2)) = 10 [127]:(-3)*((-6)-(-8)/(3)) = 10 [128]:(-3)*((-4)-(-6)/(9)) = 10 [129]:(-3)*((-4)-(-2)/(3)) = 10 [130]:(-3)*((-4)-(4)/(-6)) = 10 [131]:(-3)*((-4)-(6)/(-9)) = 10 [132]:(-3)*((-2)-(-8)/(-6)) = 10 [133]:(-3)*((-2)-(4)/(3)) = 10 [134]:(-3)*((-2)-(8)/(6)) = 10 [135]:(-3)*((-1)-(7)/(3)) = 10 [136]:(-2)*((-9)-(-8)/(2)) = 10 [137]:(-2)*((-9)-(-4)/(1)) = 10 [138]:(-2)*((-9)-(4)/(-1)) = 10 [139]:(-2)*((-8)-(-9)/(3)) = 10 [140]:(-2)*((-8)-(-6)/(2)) = 10 [141]:(-2)*((-8)-(-3)/(1)) = 10 [142]:(-2)*((-8)-(3)/(-1)) = 10 [143]:(-2)*((-8)-(9)/(-3)) = 10 [144]:(-2)*((-7)-(-8)/(4)) = 10 [145]:(-2)*((-7)-(-6)/(3)) = 10 [146]:(-2)*((-7)-(-4)/(2)) = 10 [147]:(-2)*((-7)-(2)/(-1)) = 10 [148]:(-2)*((-7)-(6)/(-3)) = 10 [149]:(-2)*((-7)-(8)/(-4)) = 10 [150]:(-2)*((-6)-(-9)/(9)) = 10 [151]:(-2)*((-6)-(-8)/(8)) = 10 [152]:(-2)*((-6)-(-7)/(7)) = 10 [153]:(-2)*((-6)-(-5)/(5)) = 10 [154]:(-2)*((-6)-(-4)/(4)) = 10 [155]:(-2)*((-6)-(-3)/(3)) = 10 [156]:(-2)*((-6)-(-1)/(1)) = 10 [157]:(-2)*((-6)-(1)/(-1)) = 10 [158]:(-2)*((-6)-(3)/(-3)) = 10 [159]:(-2)*((-6)-(4)/(-4)) = 10 [160]:(-2)*((-6)-(5)/(-5)) = 10 [161]:(-2)*((-6)-(7)/(-7)) = 10 [162]:(-2)*((-6)-(8)/(-8)) = 10 [163]:(-2)*((-6)-(9)/(-9)) = 10 [164]:(-2)*((-5)-(0)/(-9)) = 10 [165]:(-2)*((-5)-(0)/(-8)) = 10 [166]:(-2)*((-5)-(0)/(-7)) = 10 [167]:(-2)*((-5)-(0)/(-6)) = 10 [168]:(-2)*((-5)-(0)/(-4)) = 10 [169]:(-2)*((-5)-(0)/(-3)) = 10 [170]:(-2)*((-5)-(0)/(-1)) = 10 [171]:(-2)*((-5)-(0)/(1)) = 10 [172]:(-2)*((-5)-(0)/(2)) = 10 [173]:(-2)*((-5)-(0)/(3)) = 10 [174]:(-2)*((-5)-(0)/(4)) = 10 [175]:(-2)*((-5)-(0)/(5)) = 10 [176]:(-2)*((-5)-(0)/(6)) = 10 [177]:(-2)*((-5)-(0)/(7)) = 10 [178]:(-2)*((-5)-(0)/(8)) = 10 [179]:(-2)*((-5)-(0)/(9)) = 10 [180]:(-2)*((-3)-(-8)/(-4)) = 10 [181]:(-2)*((-3)-(2)/(1)) = 10 [182]:(-2)*((-3)-(4)/(2)) = 10 [183]:(-2)*((-3)-(6)/(3)) = 10 [184]:(-2)*((-3)-(8)/(4)) = 10 [185]:(-2)*((-1)-(4)/(1)) = 10 [186]:(-2)*((-1)-(8)/(2)) = 10 [187]:(-2)*((0)-(-5)/(-1)) = 10 [188]:(-2)*((0)-(5)/(1)) = 10 [189]:(-2)*((1)-(-6)/(-1)) = 10 [190]:(-2)*((2)-(-7)/(-1)) = 10 [191]:(-2)*((2)-(7)/(1)) = 10 [192]:(-2)*((3)-(-8)/(-1)) = 10 [193]:(-2)*((3)-(8)/(1)) = 10 [194]:(-2)*((4)-(-9)/(-1)) = 10 [195]:(-2)*((4)-(9)/(1)) = 10 [196]:(-1)*((-8)-(-6)/(-3)) = 10 [197]:(-1)*((-8)-(-4)/(-2)) = 10 [198]:(-1)*((-8)-(2)/(1)) = 10 [199]:(-1)*((-8)-(4)/(2)) = 10 [200]:(-1)*((-8)-(6)/(3)) = 10 [201]:(-1)*((-8)-(8)/(4)) = 10 [202]:(-1)*((-7)-(-9)/(-3)) = 10 [203]:(-1)*((-7)-(-6)/(-2)) = 10 [204]:(-1)*((-7)-(3)/(1)) = 10 [205]:(-1)*((-7)-(6)/(2)) = 10 [206]:(-1)*((-7)-(9)/(3)) = 10 [207]:(-1)*((-6)-(-8)/(-2)) = 10 [208]:(-1)*((-6)-(4)/(1)) = 10 [209]:(-1)*((-6)-(8)/(2)) = 10 [210]:(-1)*((-5)-(5)/(1)) = 10 [211]:(-1)*((-4)-(6)/(1)) = 10 [212]:(-1)*((-3)-(7)/(1)) = 10 [213]:(-1)*((-2)-(8)/(1)) = 10 [214]:(1)*((2)-(8)/(-1)) = 10 [215]:(1)*((3)-(7)/(-1)) = 10 [216]:(1)*((4)-(6)/(-1)) = 10 [217]:(1)*((6)-(-8)/(2)) = 10 [218]:(1)*((6)-(4)/(-1)) = 10 [219]:(1)*((6)-(8)/(-2)) = 10 [220]:(1)*((7)-(-9)/(3)) = 10 [221]:(1)*((7)-(-6)/(2)) = 10 [222]:(1)*((7)-(3)/(-1)) = 10 [223]:(1)*((7)-(6)/(-2)) = 10 [224]:(1)*((7)-(9)/(-3)) = 10 [225]:(1)*((8)-(-8)/(4)) = 10 [226]:(1)*((8)-(-6)/(3)) = 10 [227]:(1)*((8)-(-4)/(2)) = 10 [228]:(1)*((8)-(2)/(-1)) = 10 [229]:(1)*((8)-(4)/(-2)) = 10 [230]:(1)*((8)-(6)/(-3)) = 10 [231]:(1)*((9)-(-8)/(8)) = 10 [232]:(1)*((9)-(-7)/(7)) = 10 [233]:(1)*((9)-(-6)/(6)) = 10 [234]:(1)*((9)-(-5)/(5)) = 10 [235]:(1)*((9)-(-4)/(4)) = 10 [236]:(1)*((9)-(-3)/(3)) = 10 [237]:(1)*((9)-(-2)/(2)) = 10 [238]:(1)*((9)-(2)/(-2)) = 10 [239]:(1)*((9)-(3)/(-3)) = 10 [240]:(1)*((9)-(4)/(-4)) = 10 [241]:(1)*((9)-(5)/(-5)) = 10 [242]:(1)*((9)-(6)/(-6)) = 10 [243]:(1)*((9)-(7)/(-7)) = 10 [244]:(1)*((9)-(8)/(-8)) = 10 [245]:(2)*((-4)-(-9)/(1)) = 10 [246]:(2)*((-4)-(9)/(-1)) = 10 [247]:(2)*((-3)-(-8)/(1)) = 10 [248]:(2)*((-3)-(8)/(-1)) = 10 [249]:(2)*((-2)-(-7)/(1)) = 10 [250]:(2)*((-2)-(7)/(-1)) = 10 [251]:(2)*((-1)-(-6)/(1)) = 10 [252]:(2)*((0)-(-5)/(1)) = 10 [253]:(2)*((0)-(5)/(-1)) = 10 [254]:(2)*((1)-(4)/(-1)) = 10 [255]:(2)*((1)-(8)/(-2)) = 10 [256]:(2)*((3)-(-8)/(4)) = 10 [257]:(2)*((3)-(-2)/(1)) = 10 [258]:(2)*((3)-(4)/(-2)) = 10 [259]:(2)*((3)-(6)/(-3)) = 10 [260]:(2)*((3)-(8)/(-4)) = 10 [261]:(2)*((4)-(-9)/(9)) = 10 [262]:(2)*((4)-(-8)/(8)) = 10 [263]:(2)*((4)-(-7)/(7)) = 10 [264]:(2)*((4)-(-6)/(6)) = 10 [265]:(2)*((4)-(-5)/(5)) = 10 [266]:(2)*((4)-(-3)/(3)) = 10 [267]:(2)*((4)-(-1)/(1)) = 10 [268]:(2)*((4)-(1)/(-1)) = 10 [269]:(2)*((4)-(3)/(-3)) = 10 [270]:(2)*((4)-(5)/(-5)) = 10 [271]:(2)*((4)-(6)/(-6)) = 10 [272]:(2)*((4)-(7)/(-7)) = 10 [273]:(2)*((4)-(8)/(-8)) = 10 [274]:(2)*((4)-(9)/(-9)) = 10 [275]:(2)*((5)-(0)/(-9)) = 10 [276]:(2)*((5)-(0)/(-8)) = 10 [277]:(2)*((5)-(0)/(-7)) = 10 [278]:(2)*((5)-(0)/(-6)) = 10 [279]:(2)*((5)-(0)/(-5)) = 10 [280]:(2)*((5)-(0)/(-4)) = 10 [281]:(2)*((5)-(0)/(-3)) = 10 [282]:(2)*((5)-(0)/(-2)) = 10 [283]:(2)*((5)-(0)/(-1)) = 10 [284]:(2)*((5)-(0)/(1)) = 10 [285]:(2)*((5)-(0)/(3)) = 10 [286]:(2)*((5)-(0)/(4)) = 10 [287]:(2)*((5)-(0)/(6)) = 10 [288]:(2)*((5)-(0)/(7)) = 10 [289]:(2)*((5)-(0)/(8)) = 10 [290]:(2)*((5)-(0)/(9)) = 10 [291]:(2)*((7)-(-8)/(-4)) = 10 [292]:(2)*((7)-(-6)/(-3)) = 10 [293]:(2)*((7)-(-4)/(-2)) = 10 [294]:(2)*((7)-(-2)/(-1)) = 10 [295]:(2)*((7)-(6)/(3)) = 10 [296]:(2)*((7)-(8)/(4)) = 10 [297]:(2)*((8)-(-9)/(-3)) = 10 [298]:(2)*((8)-(-6)/(-2)) = 10 [299]:(2)*((8)-(-3)/(-1)) = 10 [300]:(2)*((8)-(3)/(1)) = 10 [301]:(2)*((8)-(9)/(3)) = 10 [302]:(2)*((9)-(-8)/(-2)) = 10 [303]:(2)*((9)-(-4)/(-1)) = 10 [304]:(2)*((9)-(4)/(1)) = 10 [305]:(3)*((1)-(7)/(-3)) = 10 [306]:(3)*((2)-(-8)/(6)) = 10 [307]:(3)*((2)-(4)/(-3)) = 10 [308]:(3)*((2)-(8)/(-6)) = 10 [309]:(3)*((4)-(-6)/(-9)) = 10 [310]:(3)*((4)-(-4)/(-6)) = 10 [311]:(3)*((4)-(-2)/(-3)) = 10 [312]:(3)*((4)-(6)/(9)) = 10 [313]:(3)*((5)-(-5)/(-3)) = 10 [314]:(3)*((6)-(-8)/(-3)) = 10 [315]:(4)*((-2)-(-9)/(2)) = 10 [316]:(4)*((-1)-(-7)/(2)) = 10 [317]:(4)*((-1)-(7)/(-2)) = 10 [318]:(4)*((0)-(-5)/(2)) = 10 [319]:(4)*((0)-(5)/(-2)) = 10 [320]:(4)*((1)-(-9)/(6)) = 10 [321]:(4)*((1)-(-3)/(2)) = 10 [322]:(4)*((1)-(3)/(-2)) = 10 [323]:(4)*((1)-(6)/(-4)) = 10 [324]:(4)*((1)-(9)/(-6)) = 10 [325]:(4)*((2)-(-4)/(8)) = 10 [326]:(4)*((2)-(-3)/(6)) = 10 [327]:(4)*((2)-(1)/(-2)) = 10 [328]:(4)*((2)-(3)/(-6)) = 10 [329]:(4)*((3)-(-4)/(-8)) = 10 [330]:(4)*((3)-(-3)/(-6)) = 10 [331]:(4)*((3)-(-2)/(-4)) = 10 [332]:(4)*((3)-(-1)/(-2)) = 10 [333]:(4)*((3)-(1)/(2)) = 10 [334]:(4)*((5)-(-5)/(-2)) = 10 [335]:(4)*((6)-(-7)/(-2)) = 10 [336]:(4)*((6)-(7)/(2)) = 10 [337]:(4)*((7)-(-9)/(-2)) = 10 [338]:(4)*((7)-(9)/(2)) = 10 [339]:(5)*((-7)-(-9)/(1)) = 10 [340]:(5)*((-7)-(9)/(-1)) = 10 [341]:(5)*((-6)-(-8)/(1)) = 10 [342]:(5)*((-6)-(8)/(-1)) = 10 [343]:(5)*((-5)-(-7)/(1)) = 10 [344]:(5)*((-5)-(7)/(-1)) = 10 [345]:(5)*((-4)-(-6)/(1)) = 10 [346]:(5)*((-4)-(6)/(-1)) = 10 [347]:(5)*((-3)-(-5)/(1)) = 10 [348]:(5)*((-2)-(-8)/(2)) = 10 [349]:(5)*((-2)-(-4)/(1)) = 10 [350]:(5)*((-2)-(4)/(-1)) = 10 [351]:(5)*((-1)-(-9)/(3)) = 10 [352]:(5)*((-1)-(-6)/(2)) = 10 [353]:(5)*((-1)-(-3)/(1)) = 10 [354]:(5)*((-1)-(6)/(-2)) = 10 [355]:(5)*((-1)-(9)/(-3)) = 10 [356]:(5)*((0)-(-8)/(4)) = 10 [357]:(5)*((0)-(-6)/(3)) = 10 [358]:(5)*((0)-(-4)/(2)) = 10 [359]:(5)*((0)-(-2)/(1)) = 10 [360]:(5)*((0)-(2)/(-1)) = 10 [361]:(5)*((0)-(4)/(-2)) = 10 [362]:(5)*((0)-(6)/(-3)) = 10 [363]:(5)*((0)-(8)/(-4)) = 10 [364]:(5)*((1)-(-9)/(9)) = 10 [365]:(5)*((1)-(-8)/(8)) = 10 [366]:(5)*((1)-(-7)/(7)) = 10 [367]:(5)*((1)-(-6)/(6)) = 10 [368]:(5)*((1)-(-4)/(4)) = 10 [369]:(5)*((1)-(-3)/(3)) = 10 [370]:(5)*((1)-(-2)/(2)) = 10 [371]:(5)*((1)-(2)/(-2)) = 10 [372]:(5)*((1)-(3)/(-3)) = 10 [373]:(5)*((1)-(4)/(-4)) = 10 [374]:(5)*((1)-(6)/(-6)) = 10 [375]:(5)*((1)-(7)/(-7)) = 10 [376]:(5)*((1)-(8)/(-8)) = 10 [377]:(5)*((1)-(9)/(-9)) = 10 [378]:(5)*((2)-(0)/(-9)) = 10 [379]:(5)*((2)-(0)/(-8)) = 10 [380]:(5)*((2)-(0)/(-7)) = 10 [381]:(5)*((2)-(0)/(-6)) = 10 [382]:(5)*((2)-(0)/(-5)) = 10 [383]:(5)*((2)-(0)/(-4)) = 10 [384]:(5)*((2)-(0)/(-3)) = 10 [385]:(5)*((2)-(0)/(-2)) = 10 [386]:(5)*((2)-(0)/(-1)) = 10 [387]:(5)*((2)-(0)/(1)) = 10 [388]:(5)*((2)-(0)/(3)) = 10 [389]:(5)*((2)-(0)/(4)) = 10 [390]:(5)*((2)-(0)/(6)) = 10 [391]:(5)*((2)-(0)/(7)) = 10 [392]:(5)*((2)-(0)/(8)) = 10 [393]:(5)*((2)-(0)/(9)) = 10 [394]:(5)*((4)-(-8)/(-4)) = 10 [395]:(5)*((4)-(-6)/(-3)) = 10 [396]:(5)*((4)-(-4)/(-2)) = 10 [397]:(5)*((4)-(-2)/(-1)) = 10 [398]:(5)*((4)-(2)/(1)) = 10 [399]:(5)*((4)-(6)/(3)) = 10 [400]:(5)*((6)-(-8)/(-2)) = 10 [401]:(5)*((6)-(-4)/(-1)) = 10 [402]:(5)*((6)-(4)/(1)) = 10 [403]:(5)*((6)-(8)/(2)) = 10 [404]:(5)*((7)-(-5)/(-1)) = 10 [405]:(5)*((8)-(-6)/(-1)) = 10 [406]:(5)*((8)-(6)/(1)) = 10 [407]:(5)*((9)-(-7)/(-1)) = 10 [408]:(5)*((9)-(7)/(1)) = 10 [409]:(6)*((-1)-(-8)/(3)) = 10 [410]:(6)*((-1)-(8)/(-3)) = 10 [411]:(6)*((0)-(-5)/(3)) = 10 [412]:(6)*((0)-(5)/(-3)) = 10 [413]:(6)*((1)-(-6)/(9)) = 10 [414]:(6)*((1)-(-2)/(3)) = 10 [415]:(6)*((1)-(2)/(-3)) = 10 [416]:(6)*((1)-(4)/(-6)) = 10 [417]:(6)*((2)-(-3)/(-9)) = 10 [418]:(6)*((2)-(-2)/(-6)) = 10 [419]:(6)*((2)-(-1)/(-3)) = 10 [420]:(6)*((2)-(1)/(3)) = 10 [421]:(6)*((2)-(3)/(9)) = 10 [422]:(6)*((3)-(-8)/(-6)) = 10 [423]:(6)*((3)-(-4)/(-3)) = 10 [424]:(6)*((4)-(-7)/(-3)) = 10 [425]:(6)*((4)-(7)/(3)) = 10 [426]:(7)*((1)-(3)/(-7)) = 10 [427]:(7)*((2)-(-4)/(-7)) = 10 [428]:(8)*((-1)-(-9)/(4)) = 10 [429]:(8)*((-1)-(9)/(-4)) = 10 [430]:(8)*((0)-(-5)/(4)) = 10 [431]:(8)*((0)-(5)/(-4)) = 10 [432]:(8)*((1)-(-1)/(4)) = 10 [433]:(8)*((1)-(2)/(-8)) = 10 [434]:(8)*((2)-(-6)/(-8)) = 10 [435]:(8)*((2)-(-3)/(-4)) = 10 [436]:(8)*((2)-(3)/(4)) = 10 [437]:(8)*((3)-(-7)/(-4)) = 10 [438]:(8)*((3)-(7)/(4)) = 10 [439]:(9)*((2)-(-8)/(-9)) = 10 Total counts = 439 |
2017年10月31日火曜日
私の本棚(5):サトウハチロー
── サトウハチロー |
|
サトウハチローと言えば、詩人、童謡作家、あるいは小説家として知られていますが、少年少女向けの小説家というのが私の印象です。しかし私の本棚にはここで紹介する詩集「おかあさん」しか置かれていません。サトウハチローの少年少女向けに書かれたユーモア小説は、ほとんど少年少女雑誌に連載される形で読まれていたからです。
名前は、サトウ・ハチローと書かれる場合もありますが、本人はサトウハチローと表記していたようです。以下に示すように、子供の頃からよく見慣れている独特な字体です。
![]() | ![]() |

サトウハチロー
この本は、実は3冊から構成されているのです。
(1)詩集 おかあさん(Ⅰ)
(2)詩集 おかあさん(II)
(3)詩集 おかあさん(III)
詳細は【解説欄】を参照してください。
【解説欄】
▼「詩集 おかあさん」の不思議
「おかあさん」の詩集全集は、外函の豪華さに比べ内容の3冊はかなり質素な装丁になっています。どちらかと言うと“不釣り合い”と言ってもいいくらいです。各冊の版数はすべて異なっていて、(1)は287版、(2)は232版、(3)は222版となっています。
最初の詩集(1)が一番よく売れて(2),(3)と次第に発行部数が落ちるのはよくあることだと思います。これは(2),(3)がかなりの数売れ残ったので、後から函入りの本を発行して(2),(3)をまとめて売りさばき、全体の発行部数の数合わせしたのではないかと推測されます。
なお、サトウハチローの全作品の一覧は、国立国会図書館デジタルコレクションから“1953年”のデータを参照すると分かります。少年少女向けの小説もすべて網羅されているようです。ただ、タイトルだけで、内容は個々の本に当たらねばなりません。
たとえば、手持ちの(4)の少年クラブ(昭和28年4月号)の目次の一部を以下に示します。

少年クラブ(昭和28年4月号)

4月号の目次
ここに、写真小説「少年6君」という作品が載っています。挿絵がすべて写真になっている点が斬新ですね。
(5)の少年クラブ(昭和28年7月号)では、

少年クラブ(昭和28年7月号)
以下に示す目次から、少年詩「ちょうちょうの歌」が掲載されていることが分かります。

7月号の目次
その「ちょうちょうの歌」の全文を以下に示します。

「ちょうちょうの歌」の全文
▼本の詳細
(1)詩集 おかあさん(I):昭和37年5月18日発行, 昭和42年6月30日 287版 定価 350円 サトウハチロー著 鈴木信太郎絵 株式会社 オリオン出版社
(2)詩集 おかあさん(II):昭和37年5月18日発行, 昭和42年6月30日 232版 定価 350円 サトウハチロー著 鈴木信太郎絵 株式会社 オリオン出版社
(3)詩集 おかあさん(III):昭和37年5月18日発行, 昭和42年6月30日 222版 定価 350円 サトウハチロー著 鈴木信太郎絵 株式会社 オリオン出版社
(4)少年クラブ:昭和28年4月号 第四十巻第五号 定価 98円 株式会社 大日本雄弁会講談社
(5)少年クラブ:昭和28年7月号 第四十巻第八号 定価 95円 株式会社 大日本雄弁会講談社
2017年10月24日火曜日
アストロドームの思い出
2017年10月20日金曜日
私の本棚(4):アラビアン・ナイト
2017年9月28日木曜日
私の本棚(3):ゲーム:チェス
── ゲーム:チェス
今回は、チェス(Chess)関連の本を取り上げました。
上掲写真で、右から順に、 (1)「チェス」、 (2)「ボビー・フッシャーのチェス入門」、 (3)「チェックメイトの手筋」、 (4)「ヒガシコウヘイのチェス入門」、 (5)「THE ART OF CHESS」、 となっています。個々の情報は【解説欄】の「▼本の詳細」を参照してください。 【解説欄】 ▼なぜか、古い本ばかりです 最初の(1)「チェス」の本は、昭和35年発行のものですから随分古い本です。調べてみたら、私の兄のものであることが分かりました。兄の書棚から借りてきたまま私の書棚に居座ってしまったように見えます。しかし後で思い出したのですが、兄から「もう読まないからあげる」と言われてもらったものでした。 (2)のボビー・フッシャーの「チェス入門」は暇を見つけては読み、中断し、また読むという読み方で楽に読めるようになっています。構成も面白くできていて最初に右ページのみを読み進みます。最後まできたら今度は本の上下をひっくり返し、再び右ページを読み進むようになっています。 昔、サラリーマンだった頃、毎日の通勤時間(片道1時間半)の内電車に乗っている約1時間をどうやって過ごすかで悩みました。早朝は眠いですから眠って過ごすことが多かったのですが、眠くないときは仕事に関係する技術の勉強をしたり、小説を読んだり、… といろいろなことをやりました。その中の一つがチェスだったのです。 将棋の詰将棋と同じように、チェスにもチェックメイトまでの手筋を考える「詰めチェス」があります。ボビー・フッシャーの「チェス入門」はその絶好の問題集だったのです。 私は「詰めチェス」が専門で、本当のチェスはやったことがありません。それでも海外出張中にメキシコでチェス盤を買いました。 白黒の石で彫られたチェスの駒は見事な出来でしょう。ゲームでは使わずに置物として存在しています。 ![]() (5)の「THE ART OF CHESS By JAMES MASON」は、1971年頃、米国ボストンで購入したものと思われますが、はっきりとは思い出せません。 ▼本の詳細 (1)「チェス」:昭和35年11月25日 7刷発行 倉田操, \200 虹有社 (2)ボビー・フッシャーの「チェス入門」:初版発行1974年12月20日, 東公平 訳, 河出書房新社 \1,200 (3)チェッス・マスター・ブック 3「チェックメイトの手筋」:初版発行1976年6月30日, Fred Reinfeld 著, 有田謙二 訳, 河出書房新社 \780 (4)ヒガシ コウヘイの「チェス入門 定跡編」:初版発行1975年12月25日, 東公平 著, 河出書房新社 \780: (5)「THE ART OF CHESS By JAMES MASON」:Revised and Edited by Fred Reinfeld and Sidney Bernstein, DOVER PUBLICATIONS, INC. NEW YORK $3.00 |
2017年9月14日木曜日
私の本棚(2):プログラミング言語 Perl
── プログラミング言語 Perl
第二回は、Perlを取り上げます。 プログラミング言語 Perl 関連の本が9冊並んでいますが、ご覧の通り高さが不揃いです。こういう不揃いの本をまとめて一か所に置くのは空間の無駄なので、普段は三か所に分散して置かれています。
「私の本棚」の内容を紹介する晴れの舞台(?)ですから、一か所に集めて写真を撮れるよう上掲のような舞台を設定しました。両側に無関係な本のタイトルが見えませんから記念写真を撮る場所としては最適でしょう。今後はこのスタイルで紹介することにします。 ![]() 上掲写真で、右から順に、 (1)「Perlプログラミング」(通称「ラクダ本」と呼ばれている)、 (2)「Perl 5 デスクトップリファレンス第3版」、 (3)「Perl書法」、 (4)「Perlの国へようこそ」、 (5)「Perlプログラミング for CGI」、 (6)「プログラミング言語Perlマスターコース」 (7)「Perlモジュール活用ガイド」、 (8)「Effective Perl」、 (9)「スクリプト言語Perl入門以前」 となっています(詳細は【解説欄】を参照してください)。クリックすると拡大され、より詳細に観察することができます。本の汚れまで見えてしまうかもしれません。 私は、通常(1),(2),(9)の3冊を使って Perl のプログラム作りに励んでいますから、普段はこれらは「私の本棚」には置かれていないことが多いです。 ![]() 【解説欄】 ▼なぜ、Perlなのか 最初に、なぜ私が Perl に入れ込んでいるのかを説明したいと思う。 昔、大型機が主流であった頃、Multicsシステム環境下でソフトウェア開発に取り組んでいた時代があった。使用する端末はテレタイプ方式であったため、コンピュータの入出力はロール紙上に記録される。多くの研究者によって共用される端末機の周辺には、直前まで使っていたアメリカ人研究者の出力結果が沢山残されていた。私はそれを拾ってきて、彼らがこの先進的なコンピュータをどのように使いこなしているかを調べ参考にしようとしたのである。 ・シェル そこで学んだことの一つは、彼らは「シェル」を多用して効率的に仕事をこなしているということであった。長い時間端末の前に座って膨大なデータを入力しているのではなく、自分のやりたいことをあらかじめコマンドの形で記述したファイル(コマンドスクリプトという)を用意しておいて、ただそれを起動するだけでよい。コマンドスクリプトのチェックが終われば、起動させて直ぐ端末を離れ部屋へ戻ってしまう。あるいは帰宅した後(休日でも構わない)、家から電話回線を通じてそういったファイルを起動することもできる。端末の前で一番長く時間を費やしている者が一番よく働いている、と考える日本人の発想とは異質のものであった。これは見習わねばならない。 ・エディタ プログラム作りに使っているエディタはラインエディタであった。ラインエディタというのはデータを行単位で扱うから、現在主流のスクリーンエディタとはかなり異なる。まるで「真っ暗闇の中で、手探りで編集か所を見つけ出し、それを編集する」という感じである。手探りであるから、見つけたと思ったものが似て非なる別の場所であったりもする。したがって、暗闇の中でも的確に対象を見つけ出す能力が自然と養われていった。 そのようにして、ラインエディタを使うプログラム編集自体もシェルと組み合わせてスクリプトファイル化され、大量のソースプログラムを一挙に編集してしまうという使い方も可能になったのである。極めて効率の良い使い方をしている。 その後、端末はビデオ表示端末へと変わっていった。その結果エディタはスクリーンエディタへと進歩していくのだが、それは時間的にもう少し先のことである。 ・パソコン環境 日本に帰国してから間もなくパソコンの時代となり、私もその開発の一端を担うことになった。当時のパソコン環境は、大型機のソフトウェア環境と比べて恐ろしくお粗末な状態であったが、少しずつ使い易くなり CP/M から MS-DOS へと発展していった。 しかし Multics や Unix の世界を知ってしまった私にとっては、到底満足のできるものではなかった。MS-DOS も Unix を参考にして進化していったが、もともと設計思想が異なるから外見だけ似せても使い難いことは変わらない。 ・スクリーンエディタの欠点 MS-DOS には、シェルはないがバッチファイルというものがあったので、私はこれを工夫して何とかシェルプログラムらしきことはできるようになった。しかし、まともなラインエディタがない!! エディタはほとんどのものがスクリーンエディタになってしまっていた。スクリーンエディタは常に画面に表示された部分を編集の対象にしているから使い勝手が良いように思われるが、シェルプログラムを重視する私のような利用者には向いていなかった。画面を見ながらの編集ではなく、暗闇の中で手探りでの編集が可能でなければシェルプログラムには使えないからである(*1)。 【注】(*1)その後、エディタにマクロを追加する形で、手探り編集も可能になった。・救世主 Perl の出現 そこに登場したのが Perl だったのである。Perl はもともとは Multics や Unix 環境で使われていた awk, qed sed ... などのテキスト変換ツールから発展してきたものである。これが、MS-DOS の世界でも使えるようになったのだ。gnu のソフトとして登録されたものを MS-DOS 版に焼き直してくれた奇特な人がいたのである。 最初は英語版だけだったが、その後日本語版も作られ jperl と呼ばれていた。このソフトの凄いところはフロッピーディスク1枚に収まる程コンパクトな作りだったことである。しかも無料で使えたのだ。この無償で使わせるという Perl の開発者 Larry Wall の考え方は真に尊敬に値する。私にとっては神様のような方である。 Larry Wall (Wikipedia から引用) 私がこのソフトウェアに飛びついたのは当然の成り行きであった。今でも私のコンピュータ上には、この初期の版が保存されている。そして立派に動く。 システム全体の圧縮ファイルは、jperl14.lzh / 385,605Bytes。実行ファイル jperl.exe はたったの 424KB である。 以来、インターネットの時代を迎え、一度は古いソフトウェアとみなされていたツールがウェブソフトの開発用ツールとして再び脚光を浴びるようになった。それとともに、オブジェクト指向の機能も追加され新たなプログラム言語として発展し続けているのである。 ・Perl を教える その後、教師になったとき、たまたま1枠あるからプログラミングの授業なら何でも良いからと任されたとき、私は迷わずPerlの授業をやろうと決心した。資料の(9)「スクリプト言語Perl入門以前」は、その授業で用いるテキストとして作成したものである。いまでは、Perlで分からないことがあると直ぐ参照するようにしている。 ▼本の詳細 (1)UNIX Programming 「Perlプログラミング」:1994年2月10日 第3刷発行 Larry Wall and Randal L. Schwartz 著, 近藤嘉雪 訳, \4,500 ソフトバンク株式会社(なお、最新版は 2002年9月発売の「プログラミングPerl第3版(全2巻)」\5,724 です) (2)Perl 5 Pocket Reference, 3rd Edition 「Perl 5 デスクトップリファレンス第3版」:2000年11月21日 初版第1刷発行, Johan Vromans著, 歌代和正 監訳, 三島純子 訳, 発行/オライリー・ジャパン, 発売/オーム社 \1,200 (3)「Perl書法」:1994年5月21日 第1版第2刷発行, 増井俊之著, \3,200, 発行/株式会社アスキー (4)「Perlの国へようこそ」:1993年5月25日 初版第2刷発行, 著者 前田薫, 小山祐司, 斎藤靖, 布施有人, \2,472, 発行/株式会社サイエンス社 (5)「掲示板・アンケートで覚える Perlプログラミング for CGI」:2000年8月10日第5刷発行, 増田若奈著, 発行/株式会社ディー・アート, \2,000 (6)「プログラミング言語Perlマスターコース 構文からオブジェクト指向まで」:2000年12月15日 初版第1刷発行, アンドリュー・L・ジョンソン著, 星睦訳, 発行/株式会社ピアソン・エデュケーション, \3,400 (7)「Perlモジュール活用ガイド かんたんオブジェクト指向プログラミング」:2000年5月10日 初版第2刷発行, エリック・フォスター・ジョンソン著, 三島俊司監修, アーク・シンク・タンク訳, 発行/株式会社翔泳社, \3,800 (8)「Effective Perl - Programming Writing Better Programs with Perl」:1999年3月21日初版発行, Joseph N. Hall / Randal L. Schwartz著, 吉川邦夫訳, \2,800, 発行/株式会社アスキー (9)「スクリプト言語Perl入門以前」:2003年9月 初版発行, 東京理科大学 応用プログラミング論テキスト, 木下恂著, \2,000, 発行/エース出版 ■ |
登録:
投稿 (Atom)




























