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で質問しましょう!

このQ&Aと関連する良く見られている質問

Q水ヨーヨーのゴムの結び方

水ヨーヨーのゴムの結び方を教えてください。

Aベストアンサー

結ぶのって難しいですよねぇ。。。私は最近友達と10人ほどで300個以上の水風船を作りました☆多分同じだと思うので回答します。

1.水を入れ終わってからゴムをひたすら伸ばす
2.人差し指と中指をくっ付けて、ゴムを回りに這わせる(巻きつける)
3.人差し指と中指の隙間にゴムの先端部分を入れる
4.指を抜いたらシッカリと結び目を硬くする☆

文章だけで説明するのはかなりムズカシいのですが、分かりますでしょうか??

QA={Φ,{{a,b},{a,c}}} B={Φ,{a,b},{a,c

A={Φ,{{a,b},{a,c}}} B={Φ,{a,b},{a,c}}のとき、A∩Bは{Φ}なのかそれとも{a,b}などを含むのかどうかがわかりません。 わかる人がいらっしゃるなら教えてください。お願いします。

Aベストアンサー

落ち着いて考えれば分かるはず。
ただ、若干の慣れは必要かも・・・。

・考え方
Aの元は、Φと{{a,b},{a,c}}}の2個。
Bの元は、Φと{a,b}と{a,c}の3個。
共通するのは、Φだけ。

よって、A∩Bの元はΦだけ。
つまり、A∩B={Φ}。

Q髪の結び方なんですけど...

何か可愛い髪の結び方ありませんか?
出来れば二つ結びでお願いします。
なかなか思うように結べなくて困ってます…。

Aベストアンサー

くしの柄やヘアピンとか使って後ろをきっちり2つに分けてから結ぶときれいに結べると思います★高い位置で結ぶ方がかわいらしさアップ!ですよね♪あと髪全部を2つに分けるんじゃなくて、耳の上あたりの髪だけをすくって2つに結んで、後ろがわの髪は結ばずにそのまま垂らしておく「うさぎ結び」もかわゆいですよね♪前髪はそのまま垂らしたりかわいいヘアピンで留めたり、あごぐらいの長さまであればうすく垂らしておいてもかわいいですよ★

Qx1=(1,1,1),x2=(1,1,-1),x3=(1,-1,-1)をC^3の基底,{y1,y2,y3}がその双対基底でx=(0,1,0)の時,y1(x),y

[問] ベクトルx1=(1,1,1),x2=(1,1,-1),x3=(1,-1,-1)をC^3の基底とする。
{y1,y2,y3}がその双対基底でx=(0,1,0)の時、
y1(x),y2(x),y3(x)を求めよ。

という問題の解き方をお教え下さい。

双対基底とは
{f;fはF線形空間VからFへの線形写像}
という集合(これをV*と置く)において、
V(dimV=nとする)の一組基底を{v1,v2,…,vn}とすると
fi(vj)=δij(:クロネッカーのデルタ)で定めるV*の部分集合
{f1,f2,…,fn}はV*の基底となる。これを{v1,v2,…,vn}の双対基底と呼ぶ。

まず、
C^3の次元は6(C^3の基底は(1,0,0),(0,1,0),(0,0,1),(i,0,0),(0,i,0),(0,0,i))
だと思うので上記のx1,x2,x3は基底として不足してると思うのです(もう3ベクトル必要?)。

うーん、どのようにしたらいいのでしょうか?

Aベストアンサー

>C^3の次元は6(

これが間違え.
「x1=(1,1,1),x2=(1,1,-1),x3=(1,-1,-1)をC^3の基底」
といってるんだから,係数体はRではなく,C.

あとは定義にしたがって,
dualな基底を書き下せばいいだけ.
y1(x1)=1,y1(x2)=y1(x3)=0であって
v=ax1+bx2+cx2と表わせるわけだし,
v=(v1,v2,v3)とすれば,a,b,cはv1,v2,v3で表現できる
#単なる基底変換の問題.

Q髪の結び方、教えてください。

今、親子共々、ロングヘアーに挑戦中です。が、私はこの年になるまで、髪を伸ばしたことが無く、したがって、髪の結び方とか、知りません!!(←威張れる話じゃないですが)ですから(こどもに)、かわいく三つ編みや編み込みをしようと思っても、できません。自分も、後ろでひとまとめ・・・しかできません。
普通の、三つ編みや編み込み、その他髪の結び方を、わかりやすく回答してもらえませんか。あるいはそんな基本が載っているサイトや本を教えてもらえないでしょうか・・・・

Aベストアンサー

上手に説明できるか解りませんが、私の得意な縛り方です。
まず髪を二つに分けます。前から後ろまでね。
それをそれぞれお好みの高さに縛るのですが、最後の縛り終わりの時に縛っている髪を上に折り返して縛るんです。解りますか?
毛先が上に向くんですけど・・・
それをブラッシなどで逆毛を立てます。
ボリュームはお好みで。
鳥の巣のようになるんです。
ただこれだけなんですが、うちの娘二人(5歳.2歳)は結婚式などにはこの髪型です。慣れれば簡単なんですか・・・
なんだか解りにくい説明でごめんなさい。
ハードスプレーをかけると一日中持ちます。
特に子供の髪はすぐに逆毛が落ちてしまうんですよね。
本屋さんにも子供のヘアースタイルが載っているのもあるので探してみてください。

Q{x1,x2,…,xn}は正規直交系でxがspan{x1,x2,…,xn}に無いならxは直交する?

[Q] Given a orthonormal set,O:{x1,x2,…,xn},and x is not in spanO,show that x is orthonormal to every vector in O.

という定理についてです。
仮定は<xi,xj>=δij (i,j∈{1,2,…,n})
xがspanOの中に無いというのだからx,x1,x2,…,xnは一次独立ですよね。
一次独立だからといってxがOのどの元とも直交するとは言えませんよね。
背理法で∃i∈{1,2,…,n};<x,xi>≠0だと仮定してみると
∥x∥∥xi∥cos∠(x,xi)≠0と書け、、、
からどうやってxがOのどの元とも直交である事を示せばいいのでしょうか?

Aベストアンサー

[Q]で書いてある主張は正しくないです.
反例:n=1, x_1=(1 0)の転置, x=(1 1)の転置.

Q自転車やバイク用の荷造り用ゴムひもが【売ってる時】の結び方を教えて下さい。

画像通りの結び方をしたいのですが、名称がわかりません!!
持ち運びに便利なのでマスターしたいのですが、どなたかやり方か結び方の名前を教えて貰えませんか?

Aベストアンサー

棒結び
http://ropework.livedoor.biz/archives/cat_50019862.html

Qにゃんこ先生の自作問題、1,2,2,3,3,3,4,4,4,4,5,…の一般項をガウス記号を用いて書くには?

にゃんこ先生といいます。

1,2,2,3,3,3,4,4,4,4,5,…
という群数列の一般項を、ガウス記号などを用いて書くとどうにゃるのでしょうか?
a[n]=k
とすると、
第k群の最後の項は、
1+2+…+k=k(k+1)/2
より第k(k+1)/2項にゃので、
(k-1)k/2 < n ≦ k(k+1)/2
をkについて解けばいいのですが、具体的にはどうかけるのでしょうか?

また、
1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,…
という群数列の一般項を、ガウス記号などを用いて書くとどうにゃるのでしょうか?

Aベストアンサー

※再訂正
ANo.1の結果
  An = k = [k] = [1 + √(8n - 7)]
   訂正 ⇒ An = [(1 + √(8n - 7))/2]

※追加
Excelで確認してみました.第16項まで表示しています.
○1つ目の群数列
n  (-1 + √(8n + 1))/2   (1 + √(8n - 7))/2    An
1      1            1            1
2      1.562          2            2
3      2            2.562          2
4      2.372          3            3
5      2.702          3.372          3
6      3            3.702          3
7      3.275          4            4
8      3.531          4.275          4
9      3.772          4.531          4
10      4            4.772          4
11      4.217          5            5
12      4.424          5.217          5
13      4.623          5.424          5
14      4.815          5.623          5
15      5            5.815          5
16      5.179          6            6

○2つ目の群数列
n   log(n + 1)/log2      log2n/log2       An
1      1            1            1
2      1.585          2            2
3      2            2.585          2
4      2.322          3            3
5      2.585          3.322          3
6      2.807          3.585          3
7      3            3.807          3
8      3.170          4            4
9      3.322          4.170          4
10      3.459          4.322          4
11      3.585          4.459          4
12      3.700          4.585          4
13      3.807          4.700          4
14      3.907          4.807          4
15      4            4.907          4
16      4.087          5            5

切り上げの関数を用いれば,左側でも表せますね.

※再訂正
ANo.1の結果
  An = k = [k] = [1 + √(8n - 7)]
   訂正 ⇒ An = [(1 + √(8n - 7))/2]

※追加
Excelで確認してみました.第16項まで表示しています.
○1つ目の群数列
n  (-1 + √(8n + 1))/2   (1 + √(8n - 7))/2    An
1      1            1            1
2      1.562          2            2
3      2            2.562          2
4      2.372          3  ...続きを読む

Q髪の結び方を教えてください

髪を後ろで結ぶことが出来なくて困っています。
たとえば↓の右の写真のように結びたいのに
http://www.complex-biz.com/onlineshop/arrange/index_1_1_26.html
侍みたいに変に立ってしまったり、膨らんでしまったりで、写真のようにきちんとならないんです。
コツがあるのでしょうか?
教えてください。

Aベストアンサー

髪の生えている向きや固さなど、人それぞれ違うので
きれいにまとまらないのかもしれません。私も毛質のせいでポニーテールがごわごわしてしまって雑誌のようにうまくいきません。
どうしてもその写真の髪型にしたいのでしたら緑のケープなどで無理やり固めてしまうのはどうでしょうか。
くしにケープをつけてからくしを使ってまとめるときれいに固まりますよ。

参考URL:http://www.kao.co.jp/cape/

Q数学についてです。 自然数全体の集合を S、その部分集合をU={3m+7n|m,nはSの要素}とお

数学についてです。

自然数全体の集合を S、その部分集合をU={3m+7n|m,nはSの要素}とおく。
このとき、U はある整数 k 以上のすべての整数を含むことを示せ。また、そのような k の最小値を求めよ。

このときmとnは自然数ですよね
だから mとnは1以上であるから
3m+7n 代入して 10になるから kの最小値は10ではないのですか?
わかる方がいれば詳しく教えてもらえるとありがたいです。
回答よろしくお願いしますm(_ _)m

Aベストアンサー

答えは22です。

n=1とすれば、
 3m+7=3(m+2)+1となり、10以上で、3で割った余りが1であると数は含まれることがわかる。

同様に、
n=2とすれば、17以上で3で割った余りが2である数は含まれ、
n=3とすれば、24以上で3で割った余りが0である数は含まれることがわかる。

したがって、22以上の全ての自然数は含まれることがわかる。
この22が最小であることを示すには21になるようなm,nが存在しないことをいえばよい。


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

おすすめ情報