作者: Fe2+
日時: 2002/5/05(21:03)
Fe2+ です。

From: dune <FZH01112@...>
Date: Sun, 05 May 2002 16:35:09 +0900

> ですが、4つの数値(実はサイコロ)の合計で表現できる数
> を全部列挙する、なんてのはどうでしょう。
> 
> とりあえず4つの数値 = (8,4,2,1) としますが、個数は
> 4個以上にも簡単に拡張できること、各々の数値も(やろ
> うと思えば)変更できること、が条件です。表示の体裁は
> どうでもいいことにします。

--^ abc0505.py
# Python 2.0 以降でないと動きません。

def sumAndForm(seeds):
    sum, form = [0], [[]]
    for i in range(len(seeds)):
        sum += [ x+seeds[i] for x in sum ]
        form += [ x+[seeds[i]] for x in form ]
    return sum,form

if __name__=='__main__':
    numbers = [1,2,4,8]
    sum, form = sumAndForm(numbers)
    for i in range(len(sum)):
        print sum[i],"=",form[i]
--$

表示の体裁はどうでもいいといって下さったので、本当に手抜きです。
考え方としては、再帰と似たようなものでしょうか。リストがひたすら倍倍に
伸びていくだけですけど。

最初 8面4面2面1面(?)さいころを振るのかと思いましたがそういう難
しい話じゃないようなのでこれでいいはずです。

--
MATSUI Fe2+ Tetsushi
 mailto:VED03370@...
 http://member.nifty.ne.jp/Fe/