2つのリスト{k}と{ls}が与えられたとき(ただし、前者のリストの要素数は1つとし、後者のリストの要素数は任意とします。また、リスト内の各要素は、自然数とします。例えば、2つのリストは、{3}と{2,3,4}など。)
、前者のリスト{k}の k という自然数を後者のリスト内の各々の各要素の自然数に振り分けるようにしてにできたリストたちの集まり(リスト)を得たいと考えています。
例えば、2つのリスト{3}と{2,3,4}が与えられたときに、この2つのリストから、新たなリスト{{5,3,4},{4,4,4},{4,3,5},{3,5,4},{3,4,5},{3,3,6},{2,6,4},{2,5,5},{2,4,6},{2,3,7}}を得たいと考えています。

自分でもいろいろと試行錯誤してみましたが、mathematicaになれていないせいからか、なかなか上手くいきません。何かよい方法はないでしょうか?

A 回答 (1件)

キモは整数kをより小さな整数に分割する部分ですが、IntegerPartitionsという組み込み関数でできてしまいます。


あとは、その順列をすべて求めて、それぞれをリスト{ls}に足したものを返せば良くなります。

例えば、
f[a_, b_List] := (b + #) & /@ Flatten[Permutations[PadRight[#, Length[b]]] & /@ IntegerPartitions[a], 1]
として、
f[3, {2, 3, 4}]
とすると、
{{5, 3, 4}, {2, 6, 4}, {2, 3, 7}, {4, 4, 4}, {4, 3, 5}, {3, 5, 4}, {3, 3, 6}, {2, 5, 5}, {2, 4, 6}, {3, 4, 5}}
が得られます。

順序が気になるのであればSortしてください。
    • good
    • 1
この回答へのお礼

大変丁寧にお教え頂き、有り難うございました。
無事に解決致しました。

お礼日時:2015/06/20 09:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 数学は日常生活に役立っているのか?専門家に聞いてみた

    3月14日は、1997年に財団法人日本数学検定協会が制定した数学の日である。あなたは学生の頃、数学は得意だっただろうか? 筆者のように得意ではなかった人なら、「将来、これが何の役に立つのだろう……」と四苦八苦...

  • この問題解けますか?「1・1・5・8」を使って10を作るパズル

    テンパズルというのをご存知でしょうか。この名前は知らなくともやったことのある方も多いと思いますが、どういうものかと言いますと、4つのひと桁の数字を足したり引いたり掛けたり割ったりして10にする、というも...

  • 数学は実生活で役立つのか

    学校で学んだ事柄が後々の仕事に役立ったなどという話は、よくあるケースですが、学んでいる最中はなかなか気づかないものです。子どもから「数学ってなんの役に立つの?」と聞かれて、数学が苦手だった親はどう答え...

  • 無駄に覚えている数字ってどのくらいあります?

    覚えたくても覚えられない数字がある一方で、なんとはなしに記憶した数字がずっと頭に残っているケースもあります。くっきりと覚えてはいるものの「多分、これ一生使わないんだろうな…」と思っている数字、今日はそ...

  • あなたも挑戦!?バカ田大学入試

    大人気ドラマ「ガリレオ」、観ている方も多いのではないでしょうか。学生時代に数学が苦手で、もう数式なんて見たくない!と思っていても、さらさらと難解な数式を操る湯川先生(福山雅治さん)の姿を見るとかっこい...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ