(問題文)
7を3つの自然数の和で表す方法は何通りあるか?
ただし、加える順序は問題にせず同じ自然数を
使ってもよい。

場合の数での問題なので、樹形図を書けば一発で
わかるのですが、式として表すことはできないもの
だろうかと悩んでます。
また、和の数や足す回数が変化した場合どうなるかも
知りたいのでその式を作る上での考え方も教えて
下さると嬉しいです。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

n個の自然数 p_1, p_2, ... , p_n が次の条件を満たしているとします。


    p_1 ≦ p_2 ≦ ... ≦ p_n
    p_1 + p_2 + ... + p_n = S
このような (p_1, p_2, ... , p_n) の組が何通りあるかを N(S, n) で表す事にします。

さて、N(S, n) の中には p_1 が1のものとそうでないものがあります。これで場合分けしましょう。

i)p_1 = 1 のとき
p_1を取り除いた p_2, p_3, ... , p_n が次の条件を満たします。
    p_2 ≦ p_3 ≦ ... ≦ p_n
    p_2 + p_3 + ... + p_n = S - 1
よってこのような (p_2, p_3, ... , p_n) の組の総数は、(n - 1) 個の自然数の総和が (S - 1) になる場合の数なので
    N(S - 1, n - 1) 通り
となります。

ii)p_1 > 1 の時
p'_1 = p_1 - 1, p'_2 = p_2 - 1, ... , p'_n = p_n - 1 とおくと
n個の自然数 p'_1, p'_2, ... , p'_n
    p'_1 ≦ p'_2 ≦ ... ≦ p'_n
    p'_1 + p'_2 + ... + p'_n = (p_1 - 1) + (p_2 - 1) + ... + (p_n - 1)
        = p_1 + p_2 + ... + p_n - n = S - n
よってこのような(p'_1, p'_2, ... , p'_n)の組の総数は
    N(S - n, n) 通り
となります。

以上より、N(S, n) に関する漸化式
    N(S, n) = N(S - 1, n - 1) + N(S - n, n)    (*)
が得られます。

これに初期条件、境界条件
    N(S, 1) = 1
    N(n, n) = 1
    N(n, m) = 0  (n < m)
を加味してやれば任意の S, n について N(S, n) が求まります。

ここまでは分かったのですが、漸化式 (*) の解き方までは分かりませんでした。
どなたか解いて頂ければ良いのですが。
    • good
    • 0
この回答へのお礼

漸化式を利用して解くとは思いつきませんでした。
ただ、私自身まだ漸化式について勉強が不十分のため
また漸化式を勉強しなおしてからゆっくり考えたいと
思います。
どうもありがとうございました。

お礼日時:2001/07/23 11:31

足す回数と足した合計の関係の式は、こうなるんじゃないでしょうか?



a:足した合計
b:足す回数

(a-1)C(b-1)-{(b-2)+(a-2)C(b-1)}
    • good
    • 0

そうですかぁー。

「加える順序は問題にせず」って言うのは、重複無し
ってことなんですね。国語力も不足しています(^^;)

また式だけですが、式だけはわかりましたので・・・たぶん

あの式だったらCを使ったほうがいいですね。
a:合計の数

(a-1)C2-{1+(a-2)C2}=重複無しの通りの数

だと思います(笑)

この式の(-)以降は、重複を消す値ですので、
これから本来の意味を発見するのはどうでしょうか?
    • good
    • 0

下で、アドバイスを書いたNi-MHです。



足す回数が変化したときの式ですが、、、

まず3回のとき下のとおり S=(A-2)*(A-1)/2 です。
4回のときは    S=(A-3)*(A-2)*(A-1)/6 です。(たぶん(笑))
5回なら   S=(A-4)*(A-3)*(A-2)*(A-1)/24 です。(たぶん)

こういう風に、規則的になるのではないでしょうか?
    • good
    • 0

まず始めに…この文章は間違っているかもしれません(^_^;)


なにせ数学が苦手ですから。

まずは X+Y+Z=7 として、Y+Zが最小値のとき(Y=1,Z=1)
X の最大値を調べます。

X=7-Y-Z=5 で、 1≦X≦5 になります。
そして、必ず 1≦Z にするためには下のようになります

X=5 のときは Y=Z=1  だから X=5 のときは 1通り
X=4 のときは Y≦2  だから X=4 のときは 2通り
X=3 のときは Y≦3  だから X=3 のときは 3通り
            ・
            ・
これは、Y の値が決まれば Z を考える必要がないからです。
Y の値は、そのまま”通り”の数になります。

こう考えると、1,2,3,4,5 通りなので

1+2+3+4+5=15通りです。

そしてこれを、一般的な式にすると・・
(これは3個の数字の足し算に関してのみいえます。)

足し算の合計の数をAとすると(今回の問題で言えば7)
n=A-2
S(通りの合計)=n*(n+1)/2 で出ます。(S=(A-2)*(A-1)/2)

これでは、足す回数が4とかだったら無理ですね。
でも、、
1+○+○+○
2+○+○+○
3+○+○+○ で考えて、○の部分3つを上の考え方で補えば、
何とかできるかも・・・ちょっと無理か(笑)

ここんところは、頭のいい方に任せましょう(^^;)

ところで、この問題は高校レベルですか?中学レベルですか?
教えてください(笑)

この回答への補足

まず、初めにこんなややこしい問題にお答え下さってありがとうございます!
ただ『加える順序は問題にせず』とあるように『124』『142』『214』『241』『412』『421』と
これらはすべて同じことになるのでNi-MHさんの教えてくださった考え方ではちょっと解けないみたいなんです。
(ちなみに『加える順序』も考えて求めるとこの問題は6C2=6*5/2*1=15という式になります)
あと、この問題は一応高校レベルですが、なにぶん樹形図ではなく妙な風に考えているので、ちゃんとした難易度はわかりません(苦笑)

補足日時:2001/07/21 09:26
    • good
    • 0

xyz-空間を考えます。


x + y + z = 7
x ≧ 0, y ≧ 0, z ≧ 0
とすると、これはA(7,0,0),B(0,7,0),C(0,0,7)を頂点とする正三角形になります。
この正三角形をABに平行に7等分、BCに平行に7等分、CAに平行に7等分に線を引くと
その線の交点達が格子点、すなわちx,y,z座標が整数の点になります。
まずこの図を書いてください。

次に「自然数の和」および「加える順序は問題にせず同じ自然数を使ってもよい」をx,y,zで表すと
1 ≦ x ≦ y ≦ z
となります。そこで上の図に3本の線を付け加えます。すなわち
x = 1
x = y
y = z
この3本の線の作る三角形の辺上および内部にある格子点が求める「自然数の和」に対応します。
この場合ですと4点が該当します。即ち
(1,1,5), (1,2,4), (1,3,3), (2,2,3)
です。よって4通りとなります。

あまり関数などのきれいな形では表せてませんが、樹形図よりは幾何学的でしょ?
但し、和の数の変化には対応できますが足す回数が増えると次元が4次元とか5次元とか
イメージしづらいものになっちゃうので足す回数の増加にはこの考えでは対応できません。

この回答への補足

すみません。3次元における関数についてはまだ習っていないんです。でも、考え方としてはなんとなくですがわかったような気がします。

補足日時:2001/07/21 09:34
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

QExcelで、数字の組み合わせの合計が一定数になるパターンの抽出

Excelで、数字の組み合わせの合計が一定数になるパターンの抽出

たとえば、つぎの配列があるとします。
A(5){10,20,30,40,50}要素数が5つ1..5、{}は内容
このなかで二つ以上の組み合わせで和が60になる組み合わせを出したいとします
答えは
パタン1:1,2,3  /* 10+20+30 */
パタン2:1,5 /* 10+50 */
パタン3:2,4 /* 20+40 */

同じような処理をExcelの関数では実現できますでしょうか?

また上記のような組み合わせのパタンの総数を求める公式はありますか?
初歩的な高等数学で恐縮です。

Aベストアンサー

> 同じような処理をExcelの関数では実現できますでしょうか?

VBA の既製の関数にはご質問のものはありません。
ただし、質問者さんご自身が Excel の VBA で その関数を作るのは簡単です。
リカージョンのお手本みたいなアルゴリズムでしょうね。

Q3けたの自然数があり、この数の百、十、一の位の数の和が、3の倍数になる

3けたの自然数があり、この数の百、十、一の位の数の和が、3の倍数になるとき、もとの3けたの数は、3の倍数である。このわけを文字を使って説明しなさい。という問題なのですが、どう解けば良いのでしょうか?中学2年の数学の問題なのですが・・・

Aベストアンサー

こんにちは。
数学の面白いところの一つだから、人に頼るのはもったいないなー。

3桁の自然数Nの百の位の数字をa、十の位の数字をb、一の位の数字をc と置く。
a+b+c が3の倍数であるとき、整数mを用いて
a+b+c = 3m と書ける。

N = 100a + 10b + c
 = 99a + 9b + a + b + c
 = 99a + 9b + 3m
 = 3(33a + 3b + m)

33a + 3b + m は整数であるので、
3(33a + 3b + m) は3の倍数。

よって、Nは3の倍数。

QExcelで組み合わせ!8人で3コースを巡回するパターンを作成したい

Excel初心者です
8人でA,B,Cの3コースを巡回する組み合わせを作成したいのですが、
例えば、Aコースが1番目の人と2番目の人が組で
以下Bが3&4,Cが5&6、で7&8は休みでスタートします
こういうのを一つのパターンとして、次回は同じコースを回らずかつ
違う人と組んでさらに休みも同じように振り分けたいのです

補足として、1年間の日程で巡回するのは決まった曜日です
組み合わせとして1番目の人は他の2~7番目の人と組む形が
できるようにしたいです。(8人全員に当てはまります)

ちなみに、コースが三つなので8×3で
24パターンあるってことですよね
休みを含めると8×4で32あることになるのかな?

よろしくお願いします

Aベストアンサー

補足です。

> 2520通りということですが

これは8人の組合わせの数です。
4組が休みを入れた4つのコースを取る、というのは
24通りありますから

2520×24となります。これは一日に取り得るパターン
の数です。
これを次回のコースの取り方を考慮したら順列組合せ
となり、2520の24乗となり、いや、24の2520乗かな?
分からない・・・その中から良いものを探すというこ
とです。まあ、あっという間に天文学的数字を超えます。

全宇宙の素粒子の数を集めても10の74乗程度でしか
ありません。

これは答えの無い問題、と私は言い切ります。少しずつ
昔を思い出してきました。
ベストでは答えがありませんが、ベターな答えは出せ
ます。最低で2千万円のプロジェクト、答えに欲出せば
1億円のプロジェクトと見積もります。それでもベター
な回答しかえられません。

しかし順列は諦めるという割きりがあります。大して
意味ないでしょう。得られない答えなんだから。
従って、私なら2520×24の組合せを作って、乱数で今回
は、これにすると決めます。次回は1度使ったパターンを
消して、残りで乱数で選びます。たまたま休みが続く人
が出ても仕方が無い、とせざるを得ません。あるいは
休みが続かない、だけを条件に選び直しはありそうですね。

補足です。

> 2520通りということですが

これは8人の組合わせの数です。
4組が休みを入れた4つのコースを取る、というのは
24通りありますから

2520×24となります。これは一日に取り得るパターン
の数です。
これを次回のコースの取り方を考慮したら順列組合せ
となり、2520の24乗となり、いや、24の2520乗かな?
分からない・・・その中から良いものを探すというこ
とです。まあ、あっという間に天文学的数字を超えます。

全宇宙の素粒子の数を集めても10の74乗程度でしか
ありません。

...続きを読む

Aベストアンサー

y=1のときにはzは存在しないので1<zとする。
x,yは互いに素なので整数a,bが存在して
ax+by=1・・・(1)
もし整数A,Bについて
Ax+By=1・・・(2)
ならば(1)-(2)より
(a-A)x+(b-B)y=0
よってa-Aはyで割りきれるからnを整数として
a-A=ny
とかける。nを任意に選んでも
B=nx+b
とすれば(2)を満たす。
A=a-ny
であるから0≦A<yで有るようにnを適当に選びAを一意に決定できる。
ただしA=0とするとBy=1となり矛盾するので
0<A<yで有るようにnを適当に選びAを一意に決定できる。
そのときのAをzとおく。
すると
zx+By=1
であるから
xz/y=1/y-B
であり、よって
xz/yの小数は1/yである。
zx+By=1かつ0<z<y
を満たすzは一意だからzを上記以外に決定したときはBを適当に選び
k=zx+Byかつ1<k<yとなる。
このとき
xz/y=k/y-B
となり
xz/yの小数はk/yとなりいずれも1/yより大きい。

y=1のときにはzは存在しないので1<zとする。
x,yは互いに素なので整数a,bが存在して
ax+by=1・・・(1)
もし整数A,Bについて
Ax+By=1・・・(2)
ならば(1)-(2)より
(a-A)x+(b-B)y=0
よってa-Aはyで割りきれるからnを整数として
a-A=ny
とかける。nを任意に選んでも
B=nx+b
とすれば(2)を満たす。
A=a-ny
であるから0≦A<yで有るようにnを適当に選びAを一意に決定できる。
ただしA=0とするとBy=1と...
続きを読む

Q組み合わせパターンを作りたいのですが、どのようにすれば効率的ですか?

こんにちは。

現在、以下のアンケートがあります。

         選択肢(Aはよい、Bはふつう、Cは悪い)
問1 ××× A B C
問2 ××× A B C
問3 ××× A B C



問11 ××× A B C

ここで、問1~問11までの設問全体の組み合わせのパターンがどれだけどんなものがあるのか一気に出したいのですが、どのような方法がありますでしょうか?もし、ソフトがあればご紹介して頂ければ幸いです。

例えば、
パターン1としては、問1~問11までが全てAというパターン、
パターン2としては、問1~問11までが全てBというパターン、
パターン3としては、問1~問11までが全てCというパターン、
パターン4としては、問1~問10まではAで問11だけがBというパターン



など、3の11乗パターン存在すると思ってます。
こうしたパターンの一覧表を一気に作りたいのですが、どのようにすればよろしいでしょうか。

ご教示頂ければ幸いです。宜しくお願い申し上げます。

Aベストアンサー

下記のプログラムをVB6で作ってみました。(あまりきれいではないですけど)pen4-2.8G メモリ512MBで90秒ほどで修了しました。 エクセルのことはよくわかりませんがそんなに難しくはないと思います。

Private Sub Command1_Click()
Dim str_out As String
s_time = Now()
str_out = ""
For i1 = 1 To 3
For i2 = 1 To 3
For i3 = 1 To 3
For i4 = 1 To 3
For i5 = 1 To 3
For i6 = 1 To 3
For i7 = 1 To 3
For i8 = 1 To 3
For i9 = 1 To 3
For i10 = 1 To 3
For i11 = 1 To 3
str_out = i11 & i10 & i9 & i8 & i7 & i6 & i5 & i4 & i3 & i2 & i1
Debug.Print str_out
str_out = ""
Next i11
Next i10
Next i9
Next i8
Next i7
Next i6
Next i5
Next i4
Next i3
Next i2
Next i1
Debug.Print s_time
Debug.Print Now
End Sub

下記のプログラムをVB6で作ってみました。(あまりきれいではないですけど)pen4-2.8G メモリ512MBで90秒ほどで修了しました。 エクセルのことはよくわかりませんがそんなに難しくはないと思います。

Private Sub Command1_Click()
Dim str_out As String
s_time = Now()
str_out = ""
For i1 = 1 To 3
For i2 = 1 To 3
For i3 = 1 To 3
For i4 = 1 To 3
For i5 = 1 To 3
For i6 = 1 To 3
For i7 = 1 To 3
For i8 = 1 To 3
For i9 = 1 To 3
For i10 = 1 To 3
For i11 = 1 To 3
str_out = i11 &...続きを読む

Q2桁の自然数のうち各位の数字の和が奇数になる自然数

問ー
2桁の自然数のうち各位の数字の和が奇数になる自然数は何個? (数学)

この問題の意味がはっきりわかりません。
「各位の自然数の和が奇数になる自然数」
ってことは、つまり 和が自然数なのですか?
それとも各位が自然数なのですか? (最初の一桁をのぞいて)

自然数は0を含まないので。。。混乱しています。

和は0を含むのでしょうか?
各位は0を含むのでしょうか? (最初の一桁をのぞいて)

Aベストアンサー

2桁の自然数(10~99まで)のうち、1の位と10の位を足す(例(1)10なら1+0で1、例(2)48なら4+8で12)と、答えが奇数になるもの(例1のようなもの)は何個ありますか?という問題です。

・一番小さくても10(和は1)なので、和が0の2桁の自然数はありません。
・1の位に0が入ることはあり得ます。
・各位の数も和も全部自然数です。

どういう時に答えが奇数になるのか、規則を見つけて考えてみてください。

がんばれ!

Qvba  組み合わせパターン表示

1,2,3,--,n-1,nからm個とる組み合わせのパターンを
セル(1,1)から(nCm、nCm)に表示させる処理をVBAで記述
したいのですが、どうすればいいのでしょうか。
よろしくお願いします。

Aベストアンサー

再帰呼び出しのアルゴリズムは「自分自身を呼び出す」わけですから、普通の上から下へ
読んでいくフローとはひと味違って、考えにくいところがあります(実は私もしばらくや
ってなかったので今回少し手こずりました)。

各行の意味を書きます。


Const nStr As String = "あいうえおかきく" '←n個の文字列
Const m As Integer = 3 '←取り出す個数
Dim n As Integer '←ご質問文のn
Dim rStr As String '←m個取り出した文字列を結合したもの
Dim mRow As Integer '←エクセル表へ書き出す際の行番号
Dim Nest As Integer '←再帰呼び出しの深さ=rStrの何文字目に取り出すのか
'-----------------------
Sub combi()
n = Len(nStr) 'nStrの文字列長をnに代入
If m > n Then Exit Sub 'nよりmが大きければ終了
rStr = String(m, " ") 'rStrにm個の空白を代入
Cells.ClearContents '書き出す表をクリア
mRow = 0 '書き出す行番号0クリア
Nest = 0 '再帰呼び出し深さ0クリア
combiPr (0) 'サブルーチン combiPr を引数0で呼び出し
End Sub
'-----------------------
Sub combiPr(n1) 'サブルーチン開始 引数はその時点での開始位置(nStrの何文字目まで処理したか)
Dim mCol As Integer '←エクセル表へ書き出す際の列番号
For nn = n1 + 1 To n - m + Nest + 1 'nnを開始位置の次の文字から始めて残りの文字数の手前までFor~Nextを繰り返す
Nest = Nest + 1 '再帰呼び出しを1カウントアップ
Mid(rStr, Nest, 1) = Mid(nStr, nn, 1) 'rStrのNest番目にnStrのnn番目を代入
If Nest = m Then 'rStrに取り出したのがm文字目なら
mRow = mRow + 1 'エクセル表の次の行へ
For mCol = 1 To m 'rStrの1文字目からm文字目まで書き出す。
Cells(mRow, mCol).Value = Mid(rStr, mCol, 1)
Next
Else 'そうでなければ、つまり現在の開始位置(=nStrの何文字目まで処理したか)がm個まで達してなければ
Call combiPr(nn) '現在の到達位置(nStrの何文字目まで処理したか)にnnをセットしてcombiPrを呼び出す(再帰呼び出し)
End If
Nest = Nest - 1'再帰呼び出しを1後退
Next
End Sub


手順は原始的なものです。
あ~く まで書かれたカードを8枚ならべて3枚抜き出すことを考えればお解りになるで
しょうか。

あ を一枚抜き出し、
い を抜き出し2枚目に置きます。
う を抜き出し、3枚目とします。←これを く まで繰り返します。

次に、い を戻して う を新たな2枚目とします。
え を抜き出し、3枚目とします。←これを く まで繰り返します。

の繰り返し・・・・

を行っているわけです。

ポイントは、1枚目を抜き出すのは か までだという点です。
き まで抜き出したら(く までしかないので)3枚目のカードがなくなります。
同様に2枚目は き までしか抜き出してはいけません。
これが「For nn = n1 + 1 To n - m + Nest + 1」の「n - m + Nest + 1」の部分の意味です。

テキストベースのみの説明なので伝えにくいのですが、不明な点があったら補足説明しますの
で、またおたずねください。

再帰呼び出しのアルゴリズムは「自分自身を呼び出す」わけですから、普通の上から下へ
読んでいくフローとはひと味違って、考えにくいところがあります(実は私もしばらくや
ってなかったので今回少し手こずりました)。

各行の意味を書きます。


Const nStr As String = "あいうえおかきく" '←n個の文字列
Const m As Integer = 3 '←取り出す個数
Dim n As Integer '←ご質問文のn
Dim rStr As String '←m個取り出した文字列を結合したもの
Dim mRow As Integer '←エクセル表へ書き出す際の行番号
...続きを読む

Q数量を文字式で表す問題と数量の関係を等式で表す問題が苦手で困っています

数量を文字式で表す問題と数量の関係を等式で表す問題が苦手で困っています。簡単なやり方、コツなどを教えてください。後どんな勉強をすればいいか教えてください。

Aベストアンサー

方程式や不等式を、自分て立式するのが苦手
ということでしょうか。それならば、
要は慣れ、場数ですよ。

中学数学の問題集で、方程式のを使った文章題
の復習をした後、
小学算数の問題集(中学受験用のものが吉)で、
練習を続けるとよいと思います。

小学生が図やグラフを工夫して解く問題を
方程式を使って大人解きしているうちに、
だんだん数式が手に馴染んでくるでしょう。

Q数字の組み合わせパターンの取得について

a組 1,2,3,4,5,6,7,8,9
b組 1,2,3,4,5,6,7,8,9
c組 1,2,3,4,5,6,7,8,9

上記のような各組から、それぞれ1つずつ番号を選択し
出来上がる組み合わせパターン全てを取得したいのですが
どうしてもうまく取得できません。
各組の番号の重複はしないように取得したいので
9*8*7=154の組み合わせ全てを取得したいです。
(計算合ってますかね・・・)

例○:1,2,3 2,1,3 ・・・
例×:1,2,1 2,4,4 ・・・

質問も初めてなので、書き方など不明な点や不手際があれば
あわせてご回答いただけると感謝です。

Aベストアンサー

失礼しました。そう例示がありましたね
であれば、504通りになるのかな?

<?
$x=1;
for($i=1;$i<=9;$i++){
for($j=1;$j<=9;$j++){
if($i==$j) continue;
for($k=1;$k<=9;$k++){
if($j==$k or $i==$k) continue;
print $x++.":".$i.",".$j.",".$k."<br>\n";
}
}
}
?>

Q高校数学です。問題で出てきたnは、必ず自然数を表す

んですか。nに、3以上とかの条件が全くないときのことです。

Aベストアンサー

特記事項がない限り「必ず」はありません。

しかし、nはnaturalの略であり、ほとんどの場合は
自然数を表します。


人気Q&Aランキング