だいすけ @カレー好き
はじめ、ABCDEからも重複ありで結ぶのかと勘違いして悩んでしまいました。
ABCDEは1個ずつ結ぶのでしたね。
○○○○○||||の並べ方なので、9C4で126通りですね。
   1月6日(木) 0:07:59     51159
Mr.ダンディ
A,B,C,D,Eの行き先をそれぞれ左からa,b,c,d,e番目の点とするとき
1≦a≦b≦c≦d≦e≦5 であればよい
⇔ 1≦a<(b+1)<(c+2)<(d+3)<(e+4)≦9
1〜9から5つの数を選び大きく無い順から順に a,(b+1),(c+2),(d+3),(e+4)
を対応させればよいので
9C5=126 (通り)
としました。
   1月6日(木) 0:16:46     51160
今年から高齢者
5個を5個に重複して配分する9C4
   1月6日(木) 0:17:02     51161
Jママ
今年もどうぞよろしくお願いします。

ABCDEから結ばれる点が
5個とも同じ…5通り
4個同じ…5×4=20通り
3個だけ同じ…5×4C2=30通り
3個+2個…5C2×2=20通り
2個だけ同じ…5×4C3=20通り
2個+2個+1個…5C3×3=30通り
1個ずつバラバラ…1通り

以上を合計して126通りになりました。
   1月6日(木) 0:20:41     51162
ゴンとも
十進Basic で

FOR a=1 TO 5
FOR b=a TO 5
FOR c=b TO 5
FOR d=c TO 5
FOR e=d TO 5
LET s=s+1
NEXT e
NEXT d
NEXT c
NEXT b
NEXT a
PRINT s
END

f9押して 126・・・・・・(答え)
豊川市   1月6日(木) 0:27:27   MAIL:fttnm528@ybb.ne.jp   51163
紫の薔薇の人
直線アにi点、直線イにj点あるときの場合の数をA(i,j)とすると、

直線イの左端の点を使うか使わないかで場合分けして、

A(i,j)=A(i-1,j)+A(i,j-1)が成り立つ。

A(1,j)=j、A(j,1)=1
だから、順に表を埋めていき、A(5,5)=126を得る。
  
i/j 1 2  3  4 5
1 1 2 3 4 5
2 1 3 6  10 15
3 1 4 10 20 35
4 1 5 15 35 70
5 1 6 21 56 126

左マスと上マスの数を足すことを繰り返す。

//

   1月6日(木) 0:40:29     51164
紫の薔薇の人
#51164

>直線イの左端の点を使うか使わないかで場合分けして、

直線アの左端の点を、直線イの左端の点と結ぶか結ばないかで場合分けして

   1月6日(木) 0:43:49     51165
ベルク・カッツェ
上下とも任意の点同士を結ぶと勘違いしてなぜ合わないのか悩んでいました。
よく読んだらとても簡単な問題だったという。

下の点1つ、選び方5通り×線の引き方1通り=5通り
下の点2つ 10×4=40
下の点3つ 10×6=60
下の点4つ 5×4=20
下の点5つ 1×1=1
合計126通り。
   1月6日(木) 0:46:41     51166
スモークマン
冷静に考えたら気づけましたわ ^^;
5個の数字から、重複許して5個選び、それを小さい順に並べる方法は1通りなので、5H5=9C4=126通り♪
   1月6日(木) 0:55:53     51167
EG
明けましておめでとうございます。
上の点も変動すると思い込んでまったく解けませんでした(;_;)
諦めて風呂に入っている間にもしやって思ったら暗算問題だったという・・・
こんなオッチョコチョイですが今年もよろしくお願いします。
   1月6日(木) 1:24:10     51168
「数学」小旅行
重複組み合わせでやりました!暗算しました(^^)〜
今年もよろしくお願いします。
   1月6日(木) 4:56:45     51169
さいと散
明けましておめでとうございます。
   1月6日(木) 6:54:41     51170
ことりちゅん(・8・)
ABCDEと4つの仕切り棒並び順   仕切り棒で左からPQRSTに分ける
9C4=126
埼玉県さいたま市   1月7日(金) 0:26:18     51171
いちごみるく
上も好き勝手に選べる場合の答えを出した方居たら答え合わせたいので教えてくれると嬉しいです。
   1月7日(金) 23:27:33     51172
いちごみるく
2751ですかね
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (n); ++i)
map<pair<int, pair<int, int>>, int>mp;
int dp(int zan, int l, int r) {
if (mp.count({ zan,{l,r} }))return mp[{ zan, { l,r }}];
if (0 == zan)return 1;
int val = 0;
rep(i, min(5, l + 1))rep(j, min(5, r + 1)) {
if ((l == i)&(r == j))continue;
val += dp(zan - 1, i, j);
}
mp[{ zan, { l,r }}] = val;
return val;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout << dp(5, 5, 5) << endl;
return 0;
}
   1月7日(金) 23:37:08     51173
ぼけ老人
ばち丸です。
見て全く気付かず、よく見ると高校でやった5つの丸と仕切り線4本の
並べ方だと気づいた次第。お粗末で「ぼけ老人」としか言いようがない。

先日、年賀状出した相手の弟さんからハガキが来て、去年の春に亡くなりました。だと。がっかりしました。たまらんな。
   1月8日(土) 21:26:24     51174
ばち丸
たびたびすみません。掲示板に答えを送ってみたらあっという間に名前が出てきた。まじめに仕事やってるなって感じ。またよろしくおねがいします
   1月8日(土) 22:01:12     51175
「数学」小旅行
#51173
線分が5本になるというのが条件なので、例えば
上端が[aabbc]で、対応する
下端が[pqqqt]のときなどはだめです。4本になってしまいます。
そこでこのようなもの以外を数えました。

Rubyプログラミングです。

x=['a','b','c','d','e'].repeated_combination(5).to_a
y=['p','q','r','s','t'].repeated_combination(5).to_a

k=0

for f in x
for g in y
if f[0]!=f[1]||g[0]!=g[1] then
if f[1]!=f[2]||g[1]!=g[2] then
if f[2]!=f[3]||g[2]!=g[3] then
if f[3]!=f[4]||g[3]!=g[4] then k+=1
end;end;end;
end;end;end;

p k

答えは同じく、2751となりました。
   1月9日(日) 6:15:00     51176
いちごみるく
#51176
ありがとうございます。カッコつけてメモ化再帰で解きましたが
普通に全ケース回したほうがわかりやすいですね。
   1月9日(日) 7:20:41     51177
「数学」小旅行
#51177
とりあえず思いついたのでこうしましたが、一般に上列にm個下列にn個となり、
k本の線分を引くとなると、別の判定法かアルゴリズムが必要な気がしています。
   1月9日(日) 9:50:21     51178
「数学」小旅行
とか言っている間にとりあえずできました。

m=5;n=5;k=5
x=(1..m).to_a.repeated_combination(k).to_a
y=(1..m).to_a.repeated_combination(k).to_a

ans=0
for f in x
for g in y
d=1
for i in (0..k-2)
d=d*((f[i]-f[i+1])**2+(g[i]-g[i+1])**2)
end
if d!=0 then ans+=1
end
end
end

p ans

m,n,kにいろんな値をいれてみると?
   1月9日(日) 10:13:01     51179
いちごみるく
同じくm,n,kを入出力で受け取れるように
計算量がO(m^2*n^2*k*O(m^2*n^2*k))なはずなので
(n,m,k)=(50,50,50)ですら7秒かかります
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (n); ++i)
int n, m, k;
map<pair<int, pair<int, int>>, long long>mp;
long long dp(int zan, int l, int r) {
if (0 == zan)return 1;
if (mp.count({ zan,{l,r} }))return mp[{ zan, { l,r }}];
int val = 0;
rep(i, min(n, l + 1))rep(j, min(m, r + 1)) {
if ((l == i)&(r == j))continue;
val += dp(zan - 1, i, j);
}
mp[{ zan, { l,r }}] = val;
return val;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m >> k;
cout << dp(k, n, m) << endl;
return 0;
}
   1月9日(日) 22:21:58     51180
いちごみるく
O(m^2*n^2*k*log(m*n*k))
と書きたかったらしい。
   1月9日(日) 23:10:21     51181
いちごみるく
意味もなく再起させなければ(n,m,k)=(50,50,50)でも200msとかで終わるのか
   1月10日(月) 9:17:54     51182
いちごみるく
そもそも2D累積和使えばO(n*m*k)に落ちる
   1月10日(月) 9:20:25     51183
ベルク・カッツェ
#51172
あまり自信はありませんが、
上下のいずれかを5個使う場合 126×2-1=251
4個と4個の場合、4個と3個の場合・・・と場合分けして数えたら2751通りになりました。
   1月11日(火) 1:08:52     51184
吉川 マサル
 非常に悲しいお知らせです。

 算チャレで初期のころから解説ページをお作りになられ、しかし17年前に大きな交通事故に遭い、意識がもどらぬままご自宅での介護生活を続けていた栗原英治さんが昨日、お亡くなりになりました。

 1999年に高知オフミでお会いし、その後に2004年に突然の更新停止、意を決してご自宅にお電話をし、奥様から事情を伺ったのはもう17年も前のことです。その後、年に1回のお見舞いは続けていましたが、コロナの影響で2年ほど伺えていなかったところでした。

 ご冥福をお祈りしたく思います。
Tokyo   1月11日(火) 8:53:21   HomePage:算チャレ  51185
「数学」小旅行
#51185 ご冥福を心からお祈り申し上げます。
   1月11日(火) 13:12:49     51186
「数学」小旅行
#51179 自己レスです。

重複組み合わせにとらわれてつまらないことをしていました。

上列と下列を順に増加させてとれば良いだけでした。

$m=5;$n=5;$k=5;$ans=0

def seg(a,b,c)
if c>=$k then $ans+=1
else
for i in a..$m-1
for j in b..$n-1
if i!=a||j!=b then seg(i,j,c+1) end
end
end
end
end

p Time.now

for i in 0..$m-1
for j in 0..$n-1
seg(i,j,1)
end
end

p Time.now

p $ans

これを実行すると、
2022-01-11 04:09:19.703474163 +0000
2022-01-11 04:09:19.708215219 +0000
2751

ですが、50,50,50となると、私の環境でRUBYでは
先ほどからやってますが、30分経過でまだできていません。

遅いですね(^^;)
   1月11日(火) 13:32:06     51187
いちごみるく
というかそもそも包除原理でO(k)ですね
9C5*9C5*4C4-8C4*8C4*4C3+7C3*7C3*4C2-6C2*6C2*4C1+5C1*5C1*4C0=1751
ΣBinomial(n+i-1,i)*Binomial(m+i-1,i)*Binomial(k-i,i-1)*-1^((k-i)%2)
   1月12日(水) 9:51:44     51188
kasama
#51185
栗原さんのことは、時折気にしていましたが、お亡くなりなったのですね。
とても悲しいです。ご冥福をお祈り申し上げます。
和歌山   1月12日(水) 20:28:19     51189
量子論
#51185
私は新参者ですので、栗原さんと算チャレで同じ時を
共有したことはありませんでしたが、
掲示板のマサルさんの話からご事情を知りました。
リンク先にある栗原さんのホームページにも何度も訪れました。
算数愛、家族愛、自然愛にあふれ、生前のお人柄が偲ばれます。
可能なら「数学の小部屋」ずっと残していただきたいです。
栗原さんのご冥福を心よりお祈り申し上げます。
   1月13日(木) 1:57:54     51190
June
今週もありがとうございます
   1月13日(木) 21:21:22     51191
「数学」小旅行
#51188
すばらしい!!

やってみました。

m=5;n=5;k=5

def fac(t)
f=1
for i in 1..t
f=f*i
end
f
end

s=0
for i in 1..k
s=s+(-1)**((k-i)%2)*(fac(m+i-1)*fac(n+i-1)*fac(k-1)/(fac(m-1)*fac(n-1)*fac(k-i)*fac(i-1)*fac(i)*fac(i)))
end

p s

総当たりのような気の遠くなるような作業をさせるより、
こんな計算式をあたえてやることの大切さを痛感できます。

m=5,n=5,k=5 で、0.11秒
m=50,n=50,k=50で、0.15秒 でした!! ありがとうございました。
   1月14日(金) 15:40:02     51192
みかん
今年も共通テストの問題を見てみました。とはいえ、解けそうな場合の数・確率の
部分のみですが。

1Aの大問3、プレゼント交換という設定にしてあるが、問うていること自体は
見たことのあるようなもの。よくある問題に書き直すとこんな感じか。

<問題>
「5つの箱にそれぞれ、A・B・C・D・Eと記号を付ける。また、5つの玉にも
それぞれ、A・B・C・D・Eと記号を付ける。5つの箱に玉を1個ずつ入れるとき、
箱と玉の記号が一致するものが1組もない確率を求めよ」

…なんか面白味がないですね。別の場面を考えてみましょう。

<問題>
「空欄A・B・C・D・Eに入る最も適切な語を、選択肢あ・い・う・え・お 
から選べ。ただし、同じ記号を2度以上用いてはならない。

上記の設問でまったく考えずに無作為に記号を解答した時、5つとも不正解に
なる確率を求めよ。解答は あ・い・う・え・お を1度ずつ記入し、同じ記号を
2回以上書いたり、無解答としたりすることは考えないものとする。」

…試験では考えたあげく1つも当たらない、ということも時々ある話。だけどそれを
試験問題のネタにされると腹が立つだろうなぁ・・・。

ちなみに、「無作為に5つの記号を1度ずつ書く」も「5つとも同じ記号を書く」も
得点の期待値としては同じだったような気がします。
   1月17日(月) 0:29:18     51193