分からない問題はここに書いてね448
■ このスレッドは過去ログ倉庫に格納されています
>>127 気長にやってみた。 > sapply(1:20,function(k) treasure0(4,5,k)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] 短軸有利 9 84 463 1776 5076 11249 19797 28057 32243 30095 22749 長軸有利 9 83 453 1753 5075 11353 20057 28400 32528 30250 22803 同等 2 23 224 1316 5353 16158 37666 69513 103189 124411 122408 [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] 短軸有利 13820 6656 2486 695 137 17 1 0 0 長軸有利 13831 6657 2486 695 137 17 1 0 0 同等 98319 64207 33788 14114 4571 1106 188 20 1 4×5の場合 宝:1個 同等 宝:2〜5個 短軸有利 宝:6〜13個 長軸有利 宝:14〜20個 同等 と推移した。 >>127 えー なかなか簡単にはいかせてもらえないね 考えながら仕事片付けるとしよう あれーほんとだ どこかで派手な勘違いをしたままでやってたぽい そりゃあっちこっちぐるぐるうううになるわ… あかん、今考える余裕ないw >>131 の同じになるってのもとりあえず保留 >>124 宝2個でn=30まで計算させてみた。4以上で短軸有利は不変だった。 > t(sapply(1:30,treasure1)) P1st Q1st even [1,] 0 0 1 [2,] 4 5 6 [3,] 26 27 13 [4,] 84 83 23 [5,] 203 197 35 [6,] 413 398 50 [7,] 751 722 67 [8,] 1259 1210 87 [9,] 1986 1910 109 [10,] 2986 2875 134 [11,] 4320 4165 161 [12,] 6054 5845 191 [13,] 8261 7987 223 [14,] 11019 10668 258 [15,] 14413 13972 295 [16,] 18533 17988 335 [17,] 23476 22812 377 [18,] 29344 28545 422 [19,] 36246 35295 469 [20,] 44296 43175 519 [21,] 53615 52305 571 [22,] 64329 62810 626 [23,] 76571 74822 683 [24,] 90479 88478 743 [25,] 106198 103922 805 [26,] 123878 121303 870 [27,] 143676 140777 937 [28,] 165754 162505 1007 [29,] 190281 186655 1079 [30,] 217431 213400 1154 正の整数の組(x,y)であって,x!+y!=x^yを満たすようなものを全て求めよ の解説をして頂けませんか? 答えは2,2 2,3だと思うのですが解答が無くて よろしくお願いします >>134 xは偶数しかありえないのでx=2mとおけば >>136 y≦x-1のとき, x!+y!=y!(x!/y!)+y!=y!((x!/y!)+1), (3≦)(x!/y!)+1=x・(x-1)!/y!+1とxは互いに素だから, x!+y!≠x^y. すなわちx≦y. 3≦xのとき, x!+y!=x!(1+(y!/x!))は(x-1)(≧2)の倍数. x-1とxは互いに素であり, x!+y!≠x^y. すなわちx≦2. 1)x=1のとき, 与式を満足させるyはない. 2)x=2のとき, 2+y!=2^y. y≧4とすれば, 2+y!=2+24・(y!/4!)>2+3・2^(k-1)>2^k. すなわちy≦3. よって求める組は(x,y)=(2,2), (2,3). できました! 宝箱問題、 もとの 4x3 型の12部屋で宝箱の数を変えてみると 1と8以上で有利不利無し、それ以外は長軸優先有利となるな 初見での印象よりも随分奥深いなこれ 数列の項を並べ替えてできる数列の収束性、極限値は如何? もう少し正確にいうと、 全単射関数 n : N -> N で 数列 a[ i ] を n で並べ替えた数列b[ i ]を b[ i ] = a[ n(i) ] で定義する。 b[ i ] の収束性、極限値はどうなるでしょう? プログラムで計算したので式はなんとも 部屋が ABCD EFGH IJKL として 宝物10個のときはABが空きなら縦の勝ち、 AEが空きなら横の勝ち 縦勝ちの宝物9個の配置 CDEFGHIJK CDEFGHIJL CDEFGHIKL CDEFGHJKL CDEFGIJKL CDEFHIJKL CDEGHIJKL CEFGHIJKL DEFGHIJKL 横勝ち BCDFGHIJK BCDFGHIJL BCDFGHIKL BCDFGHJKL BCDFGIJKL BCDFHIJKL BCDGHIJKL BCFGHIJKL BDFGHIJKL 以下各個数での勝敗の数 treasures 1: p win 5 q win 5 even 2 treasures 2: p win 26 q win 27 even 13 treasures 3: p win 73 q win 76 even 71 treasures 4: p win 133 q win 140 even 222 treasures 5: p win 167 q win 176 even 449 treasures 6: p win 148 q win 153 even 623 treasures 7: p win 91 q win 92 even 609 treasures 8: p win 37 q win 37 even 421 treasures 9: p win 9 q win 9 even 202 treasures 10: p win 1 q win 1 even 64 treasures 11: p win 0 q win 0 even 12 treasures 12: p win 0 q win 0 even 1 >>139 Rでよければこんな感じ # 宝の数を変化させる treasure0 <- function(m=3,n=4,k=2){ y=1:(m*n) (z=matrix(y,ncol=n,byrow=T)) (P=as.vector(z)) (Q=as.vector(t(z))) PQ <- function(x){ p=q=numeric(k) for(i in 1:k){ p[i]=which(P==x[i]) q[i]=which(Q==x[i]) } min(p)-min(q) } tre=combn(m*n,k) re=apply(tre,2,PQ) return(c(短軸有利=sum(re<0),長軸有利=sum(re>0),同等=sum(re==0))) } sapply(1:12,function(k) treasure0(3,4,k)) > sapply(1:12,function(k) treasure0(3,4,k)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] 短軸有利 5 26 73 133 167 148 91 37 9 1 0 0 長軸有利 5 27 76 140 176 153 92 37 9 1 0 0 同等 2 13 71 222 449 623 609 421 202 64 12 1 >>138 >128に書いたけど 4x5だと宝箱を増やすと途中で短軸有利から長軸有利に変わっちゃうので自分でもびっくりした。 > 141 よろしければプログラムコードをアップしていただけませんか?Pythonでしょうか? >>143 ちょっと整理してました。 NB. n comb n returns all n length set from 0..m-1 comb =: dyad define if. x=1 do. (1,~y)$i.y elseif. x=y do. (1,y)$i.y elseif. do. ((y-1) ,/"0 1 (x-1) comb y-1 ), x comb y-1 end. ) NB. usage: 3 4 game 2 game =: dyad define p =. ,/ |: x $ i. */x q =. i. */x g =. y comb */x d =. (<./"1)@(g &((i."1 0)~)) r =.(d p)-(d q) y, (+/ r<0), (+/ r>0), (+/ r=0) ) NB. run 3 4 games n for n in 1..12 smoutput 'tre p q even' smoutput 3 4 game "1 0 (1+i. 12) >>144 のコードはマイナー言語J ここで実際に動かしてみることができます https://goo.gl/znRTwf 一般に, U[j=1, n]A_j=ℝ となるn個の集合 A_j (*1) について, j=1,2,...,n で a_j∈A_j となるような変数 a_j を取り, lim[a_j→α] f(a_j) =k (*2) が全ての j について言えたならば, lim[x→α] f(x) =k (*2) が言えますか。 例えば, p∈ℚ, q∈ℝ\ℚ とすると, p と q を合わせれば全実数を取ります。このとき, lim[p→α] f(p) =lim[q→α] f(q) =k かつ lim[x→α] f(x) ≠k となる f(x) は存在しますか。 (*1)αに十分近い要素も含む (*2)離散的極限 >>145 お手数かけました。 残念ながら自分の知識ではアラビア文字のように理解不能でした。 >>60 一つ質問ですが スタート地点Aに宝があるとゲームスタートと同時に 同着でゲーム終了になるけど、ポイントAに宝は設置されるのですか? σをn次の置換とする。 R^nからR^nへの写像で、(x_1,...,x_n)を(x_σ(1),...,x_σ(n))にうつすものは連続であることを示して下さい。 >>140 条件収束する級数を考えればa[i]とb[i]の収束性に関係がないことは明らか >>149 その場合は引き分けで終了。 宝の置き方はランダム。 12C2=66通りに等確率で配置。 >>145 数字を増やしたらサイトの時間制限を超えて結果がでなくて残念。 尚、>142のRはメモリ不足で停止しました。 NB. usage: 5 6 game 2 NB. run 5 6 games n for n in 1..30 smoutput 'tre p q even' smoutput 5 6 game "1 0 (1+i. 30) >>155 分散分析でF分布の値の比に F-ratio というのが出てくるの知ってた? 可換環論ではAss、穴(Ann)、ホモロジー、(チェイン)ホモトピー、……汚い言葉がいっぱい出てくるよ!やったね! >>140 a[i] → c とする。 e>0 とする。 |a[i] - c| ≧ e である i は有限個。 ∴ |b[i] - c| ≧ e である i は有限個。 ∴ b[i] → c。 >>146 離散的極限って離散位相での極限? だったら Aj が disjoint な集合なら a[1]→α、a[1]∈A[1]、a[2]→α、a[2]∈A[2] 自体が起こりえないやろ? 誘導位相? >>154 12部屋から6部屋選ぶ組み合わせは924通りしかないのに 20部屋から10部屋だと184756通り、 30部屋から15部屋だと155117520通り、 という感じなのでどうしても時間やメモリを食いますよね >>60 場合分けなどが面倒くさくて疲れ果てたけど、計算結果は>>133 と一致。 P1st(n)-Q1st(n) が(偶奇によらず) (n^2-2n-6)(n-1)/6 になったので、n=2,3でQが、n≧4でPが有利。 コードはSagemath。 from sage.calculus.calculus import symbolic_sum ,var m,l,k,a,n P1 = (symbolic_sum((m-1)*(m)-2*l-1, l,1,m-2) + symbolic_sum(symbolic_sum((m-1-k)*(m-k)+k-1-l, l,k,2*k) + symbolic_sum((m-1-k)*(m-k)+3*k-2*l-1, l,2*k+1,m-2), k,1,a-2) + symbolic_sum(symbolic_sum((m-1-k)*(m-k)+k-1-l, l,k,m-2), k,a-1,m-2) ).substitute({a:m/2}).substitute({m:n+1}) P2 = (symbolic_sum((m-1)*(m)-2*l-1, l,1,m-2) + symbolic_sum(symbolic_sum((m-1-k)*(m-k)+k-1-l, l,k,2*k) + symbolic_sum((m-1-k)*(m-k)+3*k-2*l-1, l,2*k+1,m-2), k,1,a-1) + symbolic_sum(symbolic_sum((m-1-k)*(m-k)+k-1-l, l,k,m-2), k,a,m-2) ).substitute({a:(m-1)/2}).substitute({m:n+1}) def P1st(x): return P1.substitute({n:x}) if mod(x,2) == 1 else P2.substitute({n:x}) Q1 = (symbolic_sum(symbolic_sum((m+1-k)*(m-k)+k-2*l-1, k,0,l-1), l,0,a) + symbolic_sum(symbolic_sum((m+1-k)*(m-k)+k-2*l-1, k,0,m-l-1) + symbolic_sum((m-k)^2+k-l,k,m-l,l-1), l,a+1,m-1) + symbolic_sum(k^2-2*m*k+m^2+k-m,k,0,m-2) ).substitute({a:(m-1)/2}).substitute({m:n}) Q2 = (symbolic_sum(symbolic_sum((m+1-k)*(m-k)+k-2*l-1, k,0,l-1), l,0,a-1) + symbolic_sum(symbolic_sum((m+1-k)*(m-k)+k-2*l-1, k,0,m-l-1) + symbolic_sum((m-k)^2+k-l,k,m-l,l-1), l,a,m-1) + symbolic_sum(k^2-2*m*k+m^2+k-m,k,0,m-2) ).substitute({a:m/2}).substitute({m:n}) def Q1st(x): return Q1.substitute({n:x}) if mod(x,2) == 1 else Q2.substitute({n:x}) P1 == 1/24*(6*n^3 + 20*n^2 - n - 27)*(n - 1) # nが奇数のとき P2 == 1/4*n^4 + 7/12*n^3 - 7/8*n^2 - 13/12*n + 1 # nが偶数のとき Q1 == 1/24*(6*n^2 + 10*n - 3)*(n + 1)*(n - 1) # nが奇数のとき Q2 == 1/24*(6*n^2 - 2*n - 5)*(n + 2)*n # nが偶数のとき >>161 >133です。労作ありがとうございます。 コードは全く読めないのですが、宝の数を増やしての計算はこのコードで可能なのでしょうか? 4×5の場合で宝を増やすと 宝:1個 同等 宝:2〜5個 短軸有利 宝:6〜13個 長軸有利 宝:14〜20個 同等 に変化したので差分はどんな関数なのだろうかとか、 5×6ではどうなるのか(メモリ不足で実行できませんでした)とか興味があります。 >>162 >>161 は多項式にまでするために、部屋をn x (n+1)、宝を2個と特殊化したものです。 #nloc(m,n,k,l)は縦m、横nの部屋で横優先が部屋(k,l)で初めて宝を発見する場合で #宝が置かれても縦優先に先を越されない部屋の数。 def nloc(m,n,k,l): q,r = divmod(n*k+l,m) return (n-q)*(m-k)+q-1-l + ((k-r) if r > k else 0) #nwin(m,n,c)は部屋が縦m、横n、宝がc個で横優先が勝つ宝の配置の数 def nwin(m,n,c): return sum(binomial(nloc(m,n,k,l),c-1) for k in range(m) for l in range(n) if k*(n-1)<l*(m-1)) 縦優先は縦横を替える。 >>164 レスありがとうございます。 コードは読めないのですが、 部屋数から宝部屋の組合せを列挙してどちらが縦横どちらが先にみつけるかを探る手続きで必要な計算式をプログラムが絞りだしてくれるという理解でいいのでしょうか? >>165 いえ、計算式そのものです。数式で書けば nwin(m,n,c) := Σ[(k,l)∈{0,…,m-1}×{0,…,n-1}, k*(n-1)<l*(m-1)] binomial((n-q)*(m-k)+q-1-l + (k-r)δ(r > k), c-1)、 ただし、n*k+lをmで割った商をq、余りをrとし、δ(P)をPが真なら1、偽なら0である関数とする。 >>159 例えば→√2を考えたい時、qの近づけ方は問題ないんでしょうが、pの近付き方を、p_n→√2になるような有理数列p_n上で考えることは出来ないんでしょうか。 →0なんかも、実際に関数に0を入れるわけではなくギリギリまで近付けるように、p自身が√2を取れないのは、定義できないほどの大問題でしょうか。 >>60 スタート地点のポイントAに宝があると ゲーム開始とともに同着でゲーム終了になるので除外する 宝がいくつあったとしても、P君とQ君のどちらかが先に 一つでも宝を見つけるとそこでゲーム終了となる 縦方向の探査をn、横方向の探査をn+1として 宝の個数をkと置くと、調査する全範囲は {n(n+1)−1}−(k−1)=n(n+1)−kと考えられる Ω={n(n+1)−k)|n≧2,n(n+1)−1>k≧1} ■縦方向に探査をするP君の確率空間は Ω={(i,j)|1≦i≦n,1≦j≦n(n+1)−k}から #A=n{n(n+1)−k}−{n(n+1)−k−1}(n−1) =n(n^2+n−k)−{n(n^2−1)−k(n−1)−(n−1)} =n^3+n^2−kn−n^3+n+kn−k+n−1 =n^2+2n−k−1 #Aは事象Aに含まれる要素の個数 ■横方向に探査をするQ君の確率空間は Ω={(i,j)|1≦i≦n+1,1≦j≦n(n+1)−k}から #B=(n+1){n(n+1)−k}−n{n(n+1)−k−1} ={n(n+1)^2−k(n+1)}−{n^2(n+1)−kn−n} ={n^3+2n^2+n−kn−k}−{n^3+n^2−kn−n} =n^2+2n−k=n(n+2)−k #Bは事象Bに含まれる要素の個数 ■[n≧2,n(n+1)−1>k≧1]の条件下で以下の式が成立する ∴P(A)={n(n+2)−k−1}/{n^2(n+1)−kn} ∴P(B)={n(n+2)−k}/{n(n+1)^2−k(n+1)} >>168 Ωの部分集合を事象と言う Ω自身は全事象と言う 最初に探す方向を i 行または列が変わる時を j として P君とQ君のうちどちらが先に宝を見つけるのかという 事象Aと事象Bを考える. A={(i,j)| i または j が宝} B={(i,j)| i または j が宝} >>168 すでに正解とPCでのカウントの照合が終わっているのに 読んだ人の時間を無駄遣いさせるような明らかな誤答は慎めよ。 >>166 とすると、部屋数が増えたり宝が増えても数式として算出可能なのでしょうか? >>172 なんだ、このスレでデタラメ書きつづけてたのかよw >>152 , >>158 ご返答ありがとうございます。 >>167 もちろんそういう近づけかたを考えてもいいけど、その近づけかたを離散位相といってはいけない。 流石にこの程度の基本的な単語は正確に意味を確認するようにしないといかん。 >>175 >>152 は無視してな 完全に寝ぼけてたわ >>173 すみません。発言がよくわかりません。 「数式として算出」とは? >>166 は数式ではない? ここでいう数式とは多項式などのΣのない形のものでしょうか? 「部屋数が増えたり」も、もともと部屋をn×(n+1)などとしていて大きさを変えられますよ? 宝の数が2以外でも(3なら3と)固定されていて部屋の形がn×(n+1)または(n+1)×nなら>>161 を少し変えれば Σのないnについての多項式が得られる、とは言えます。 念のため書いておくと 式>>166 は部屋の縦横、宝の数が任意だが、Σがある。 部屋の形がn×(n+1)または(n+1)×nとして適当に場合分けすることにより数式処理ソフトで Σの計算できるようにした、そのコードが>>161 。 宝箱問題。申し訳ないのですが、プログラミングに詳しくないものでさっぱりです… 高校生にもわかるようにどなたか解説していただけませんか?(入試数学の解答のような形式であればありがたいです) ()>>173 可能だけど立式するのは結構な手間 Σを用いた式として立式して sagemath というソフトで簡略化して n の多項式にしたのが>>161 どう考えても面倒なので161さん以外の誰もやっていなかった 宝箱の数をkとして立式することは可能だろうけれども、 更なる面倒さに付き合ってくれる人がいなければここには書かれない こんなとこでどうでしょうか。 sagemath はスマートフォンなどでも使うことができて、 僕も今初めて使うので適当ですが例えば>>161 の最初の P1の式(Σを含むもの)の簡略化などはiPhoneアプリでも以下のようにして行えました アプリ起動して「+」ボタンで新しい式を入力するモードにして var l,a,n,k = var('l','a','n','k') a=m/2 m=n+1 sum((m-1)*(m)-2*l-1, l,1,m-2) + sum(sum((m-1-k)*(m-k)+k-1-l, l,k,2*k) + sum((m-1-k)*(m-k)+3*k-2*l-1, l,2*k+1,m-2), k,1,a-2) + sum(sum((m-1-k)*(m-k)+k-1-l, l,k,m-2), k,a-1,m-2) と入力して「evaluate」ボタンでこの式を評価(簡略化) https://i.imgur.com/4bpYZLg.jpg 弥勒(僧)とシュリニヴァーサ・ラマヌジャンはどっちの方が賢いですか? c のプログラムが無かったようなので 宝二つ、m×(m+1)型(m=1〜69)を作ったので参考にあげておきます。 http://codepad.org/pbmWeZZ5 少し説明を加えておくと、マスに1から順に番号をあたえます。 配列P[c]には、c番目 のマスをPは何番目に調査するか 配列Q[c]には、c番目 のマスをQは何番目に調査するか を入れておきます。 i番目とj番目のマスに宝があるとき、P[i]とP[j]を比べて小さい方の値で、Pは宝を発見し、 Q[i]とQ[j]を比べて小さい方の値で、Qは宝を発見します。 この値を比べ、PとQどちらが早く発見したかを判定すると言うだけのものです。 縦、横のマスの数の変更や、宝の数の変更も難しくないと思うので、興味がある方はどうぞ。 (本当は、配列は一つで十分なんだけど、可読性や対称性を考えて書いておきました) xyz空間の球B:x^2+y^2+z^2=1の表面または内部に点Pをとる。 Pを通り方向ベクトル(1,2,0)に平行な直線lとBとの共有点を考えるとき、以下の問いに答えよ。 (1)lとBの共有点の個数を場合を分けて答えよ。 (2)共有点の個数が2個のときを考える。共有点の一方をS、他方をTとする。 P(x,y,z)とするとき、長さの積PS・PTをx,y,zで表せ。Pが表面上にあるときはP=Sとして考えよ。 (3)Bを平面x=u(-1≦u≦1)で切った切断面D_u上を点Pが動く。P(u,y,z)においてy^2+z^2の取りうる最大値Mをuで表せ。 さらにz=0のとき、積分 I_u = ∫[0→M] (PS・PT) dy をuで表せ。 (4)(3)で求めたI_uに対して定積分K = ∫[-1→1] I_u du を求め、さらに比の値K/(4π/3)を求めよ。 n≧3とする。 次の和を求めよ。 Σ[k=1,2,...,n-1] {(n,k)・(n+1,k-1)} サイコロを振り、出た目に応じて点Pを動かす。最初点Pは(0,0)にある。 点Pが(a,b)にあるとき、偶数の目が出たら(a+1,b+1)に移動させ、奇数の目が出たら(a+1,b-1)に移動させる。 このとき、以下の事象が起こる確率を求めよ。 (1)Pが半直線y=x(x≧1)の上に乗る。 (2)Pが直線y=2x+1の上に乗る。 (3)m,nを整数の定数とし、Pが半直線y=mx+n(x≧1)の上に乗る。必要があればm,nの値に応じて場合分けして答えよ。 >>178 レスありがとうございました。 多項式で与えられたので他のソフトでも>163のように 簡単にグラフ化できました。 そういう意味で数式と書いたつもりでした。 >>183 いつもcのコードありがとうございます。 このコードだと縦横マスを増やすのは容易でも、宝の数を増やすには for loopを for(i=1,Pwin=Qwin=Draw=0;i<mn;i++)for(j=i+1;j<mn;j++) for(k=j+1;k<mn;k++) for(l=k+1;l<=mn;l++) という具合に増やす必要がありますよね? そんな感じですね。細かいところですが、少し修正を施すと、 for(i=1,Pwin=Qwin=Draw=0;i<mn-2;i++)for(j=i+1;j<mn-1;j++) for(k=j+1;k<mn;k++) for(l=k+1;l<=mn;l++) で、空回りを回避してます。 もし、このアルゴリズムで、宝の数を一般数化するなら、i,j,k,...の変数を配列にしてループにいれるか、 再帰関数化するか等の方がスマートですが、二つで固定なら、提示したような感じがシンプルですね。 しかし、宝の数可変を前提にプログラムを組むなら、別の方策を取ります。 Qは時刻 c に最初の宝を見つけるので、 ・Pの宝の発見時刻が全てcより大きい → Qの勝ち ・Pの宝の発見時刻にcを含み、残りは全てcより大きい → 引き分け ・それ以外 → Pの勝ち です。 Qは、時刻cに、マスcを調査するので、マスc+1、c+2、...の中に、P[x]>c を満たす マスがいくつあるかをあらかじめカウントし、テーブル化すれば、あとは、 二項係数の積の和だけの、プログラムとなると思います。 >>185 m+1≧n≧1 のとき Σ[k=1,n] C(n,k) C(m,k-1) = C(m+n,n-1) ∵ (1+x)^n (1+x)^m を展開したときの x^(n-1) の係数だから。 Σ[k=1,n-1] C(n,k) C(n+1,k-1) = C(2n-1,n-1) - C(n+1,2) >>182 蝉「おまえさ、人としじみのどっちが偉いか知ってるか?」 伊坂幸太郎「グラスホッパー」角川文庫 (2007) >>189 部屋の数=mn、宝の数trでmnCtr個の組み合わせを返すサブルーチンが必要になって、ここが処理のボトルネックになるんじゃないかと思うのですが。 数学とはなんでしょうか? 何が数学の本質なんでしょうか? 論理的な体系の構築? 定理の創出? >>161 の若干の一般化とその導出を備忘録的に書いておきます。 >>60 まず、部屋を探る順番が一般の場合を考える。 部屋がNあり、その集合をRとする。A君、B君が探る順番を表わす全単射写像をそれぞれf,gとする: f,g: R→{0,1,…,N-1} (順番は0から始まるとする。) 部屋自体の位置はなんら答えに影響しない。 σ=g・f^{-1} と置くと、σは{0,1,…,N-1}の置換。(・は写像の合成) A君がi番目に探る部屋はB君がσ(i)番目に探る部屋ということ。 以下、「A君がi番目に探る部屋」のことを「部屋i」ということにする。 求めたいのは、「A君がB君よりも早く宝を見つける宝の配置の数」であるが、宝の数をcとすると、それは Σ[σ(i)>i] binomial(#{j| j>i, σ(j)>i}, c-1) (0≦i,j≦N-1、binomialは二項係数) である。 なぜか? 「A君が初めて宝を見つける部屋(部屋iとする)」で場合分けしよう。 (つまり部屋0〜i-1には宝がなく、部屋iに宝がある場合) 部屋iはB君がσ(i)番目に探る部屋だからσ(i)>iでないと 少なくともB君はA君よりも前か同時に部屋iで宝を見つける (B君はその前に別の部屋で宝を見つけることもある)ことになりA君は勝てない。 したがって、σ(i)>iが必要。 残りのc-1個の宝は部屋i+1〜N-1にあるが、宝がある部屋を部屋jとすると、 やはりσ(j)>iでないといけない。逆に全部の宝でそうであればA君が勝つ。 よって、残りのc-1個の宝が置かれてもいい部屋の数は#{j| j>i, σ(j)>i}だけあり、 全部そこに置かれる場合はbinomial(#{j| j>i, σ(j)>i}, c-1)通り。 したがって、上記のようになる。 続く >>194 続き 部屋が縦m、横nで、A君は横1行を探し終えたらすぐ下の1行に移り、 B君は縦1列を探し終えたらすぐ右の1列に移るという場合を考える。 つまり、m=4,n=3の場合、A君は 0123 4567 891011 B君は 0369 14710 25811 という順番で探す。 このとき、σ=0,3,6,9,1,4,7,10,2,5,8,11。 一般には、σ(nk+l)=ml+k (0≦k≦m-1, 0≦l≦n-1)。 ここまでをPythonで表すと: #二項係数。SageMathでは定義ずみ def binomial(n,r): from math import factorial as f return f(n)//f(r)//f(n-r) if r>=0 and n-r>=0 else 0 #置換p、宝c個で勝つ宝の配置の数 def nwinperm(p,c): N = len(p) return sum(binomial(len([j for j in range(i+1, N) if i<p[j]]),c-1) for i in range(N) if i<p[i]) #部屋が縦m、横nのときの置換 def rectperm(m,n): return [m*l+k for k in range(m) for l in range(n)] #部屋が縦m、横n、宝がc個で横優先が勝つ宝の配置の数 def nwinrect0(m,n,c): return nwinperm(rectperm(m,n),c) 続く >>195 続き 部屋が縦m、横nの場合を考えているが、もう少し計算を進める。 #{j| j>i, σ(j)>i} をこの場合に具体的に表そう。 i,j (0≦i,j≦mn-1)をそれぞれ nk+l, nk'+l' (0≦k,k'≦m-1, 0≦l,l'≦n-1) とする。 σ(i)>i ⇔ lm+k>nk+l ⇔ (m-1)l>(n-1)k、 j>i ⇔ nk+l>nk'+l' ⇔ 「k=k' かつ l<l'」または「k<k'」、 σ(j)>i ⇔ l'm+k'>nk+l ⇔ l' + k'/m > (nk+l)/m [ここで nk+lをmで割った商をq、余りをrとすると] ⇔ l' + k'/m > q + r/m ⇔ 「q≦l'≦n-1 ただし l'=q, k'≦r を除く」 を使って #{j| j>i, σ(j)>i} = #{(k',l')|『「k=k' かつ l<l'」または「k<k'」』かつ l'm+k'>nk+l} に出てくる『「k=k' かつ l<l'」または「k<k'」』かつ l'm+k'>nk+lを満たす組(k',l')の数を求める。 k=k' かつ l<l'のとき σ(i)>iからlm+k>nk+lだからl'm+k'>nk+lは常に成り立つので、l<l'≦n-1でn-1-l個。 k<k' のとき l'm+k'>nk+l ⇔ 「q≦l'≦n-1, k<k'≦m-1 ただし l'=q, k<k'≦r を除く」だから (n-q)(m-1-k) - (r-k)δ(r>k)個、ただしδ(P)はPが真なら1、偽なら0である関数。 よって、#{j| j>i, σ(j)>i} = (n-1-l) + (n-q)(m-1-k) - (r-k)δ(r>k)。 したがって、求める数は Σ[0≦k≦m-1, 0≦l≦n-1, (m-1)l>(n-1)k] binomial((n-1-l) + (n-q)(m-1-k) - (r-k)δ(r>k), c-1)。 これを使ったPythonコード: #nloc(m,n,k,l)は縦m、横nの部屋で横優先が部屋(k,l)で初めて宝を発見する場合で #宝が置かれても縦優先に先を越されない部屋の数。 def nloc(m,n,k,l): q,r = divmod(n*k+l,m) return (n-1-l) + (n-q)*(m-1-k) - (r-k if r > k else 0) #部屋が縦m、横n、宝がc個で横優先が勝つ宝の配置の数 def nwinrect1(m,n,c): return sum(binomial(nloc(m,n,k,l),c-1) for k in range(m) for l in range(n) if (m-1)*l>(n-1)*k) 続く >>196 続き 部屋がm×(m+1) (n=m+1) のとき。 (m-1)l>(n-1)k ⇔ 0≦k≦m-2 かつ k+1≦l≦m。 (nk+l)/m = k + (k+l)/m より k+l<mのときq=k,r=k+l、k+l≧mのときq=k+1,r=k+l-m。 r>k (k+l<m)とr≦k (k+l≧m)とに分けるように場合分けをする: @0≦k≦[(m-1)/2], k+1≦l≦m-k-2 のとき r>k、 A[(m+1)/2]≦l≦m-1, m-1-l≦k≦l-1 または Bl=m, 0≦k≦m-2 のとき r≦k。 m=6のとき ×@@@@AB ××@@AAB ×××AAAB ××××AAB ×××××AB ××××××× m=7のとき ×@@@@@AB ××@@@AAB ×××@AAAB ××××AAAB ×××××AAB ××××××AB ×××××××× 後はΣの計算。>>60 に合わせるとQ君がA君の立場でmが>>60 でのn。 #以下 SageMathコード ,var m,n,l,k,q,r,c T2 = (n-1-l) + (n-q)*(m-1-k) T1 = T2 - (r-k) #mが奇数の場合: Q1 = (sum(sum(binomial(T1.subs({n:m+1,q:k,r:k+l}),c-1), l,k+1,m-k-2), k,0,(m-1)/2-1) + sum(sum(binomial(T2.subs({n:m+1,q:k+1,r:k+l-m}),c-1), k,m-1-l,l-1), l,(m+1)/2,m-1) + sum(binomial(T2.subs({n:m+1,l:m,q:k+1,r:k}),c-1), k,0,m-2) ).subs({m:n,c:2}).simplify_full().factor() #mが偶数の場合: Q2 = (sum(sum(binomial(T1.subs({n:m+1,q:k,r:k+l}),c-1), l,k+1,m-k-2), k,0,m/2-2) + sum(sum(binomial(T2.subs({n:m+1,q:k+1,r:k+l-m}),c-1), k,m-1-l,l-1), l,m/2,m-1) + sum(binomial(T2.subs({n:m+1,l:m,q:k+1,r:k}),c-1), k,0,m-2) ).subs({m:n,c:2}).simplify_full().factor() def Q1st(x): return (Q1 if mod(x,2) == 1 else Q2).subs({n:x}) 続く >>197 続き 部屋がm×(m-1) (n=m-1) のとき。 (m-1)l>(n-1)k ⇔ 1≦l≦m-2 かつ 0≦k≦l。 (nk+l)/m = k + (l-k)/m より q=k,r=l-k。 r>k (l>2k)とr≦k (l≦2k)とに分けるように場合分けをする: @0≦k≦[(m-3)/2], 2k+1≦l≦m-2 のとき r>k、 A1≦k≦[(m-3)/2], k≦l≦2k または B[(m-1)/2]≦k≦m-2, k≦l≦m-2 のとき r≦k。 m=7のとき ×@@@@@ ×AA@@@ ××AAA@ ×××BBB ××××BB ×××××B ×××××× m=8のとき ×@@@@@@ ×AA@@@@ ××AAA@@ ×××BBBB ××××BBB ×××××BB ××××××B ××××××× 後はΣの計算。>>60 に合わせるとP君がA君の立場でmが>>60 でのn+1。 #mが偶数の場合: P1 = (sum(sum(binomial(T1.subs({n:m-1,q:k,r:l-k}),c-1), l,2*k+1,m-2), k,0,m/2-2) + sum(sum(binomial(T2.subs({n:m-1,q:k,r:l-k}),c-1), l,k,2*k), k,1,m/2-2) + sum(sum(binomial(T2.subs({n:m-1,q:k,r:l-k}),c-1), l,k,m-2), k,m/2-1,m-2) ).subs({m:n+1,c:2}).simplify_full().factor() #mが奇数の場合: P2 = (sum(sum(binomial(T1.subs({n:m-1,q:k,r:l-k}),c-1), l,2*k+1,m-2), k,0,(m-3)/2) + sum(sum(binomial(T2.subs({n:m-1,q:k,r:l-k}),c-1), l,k,2*k), k,1,(m-3)/2) + sum(sum(binomial(T2.subs({n:m-1,q:k,r:l-k}),c-1), l,k,m-2), k,(m-1)/2,m-2) ).subs({m:n+1,c:2}).simplify_full().factor() def P1st(x): return (P1 if mod(x,2) == 1 else P2).subs(n=x) 以上、整理して少し異なったけど>>161 の導出でした。 >>198 P1 == 1/24*(6*n^3 + 20*n^2 - n - 27)*(n - 1) # nが奇数のとき P2 == 1/4*n^4 + 7/12*n^3 - 7/8*n^2 - 13/12*n + 1 # nが偶数のとき Q1 == 1/24*(6*n^2 + 10*n - 3)*(n + 1)*(n - 1) # nが奇数のとき Q2 == 1/24*(6*n^2 - 2*n - 5)*(n + 2)*n # nが偶数のとき それだけ前置きやってkを含めた式が作れないのですか? >>199 「kを含めた式」って何? あと>>178 見て 宝の数が任意のものならΣが取れないでしょう。 私は何人かの方のコンピュータによる解法はすごいと思いました 正直、Pythonはわからないし、sagemathは数学そのものなのでまだ理解できていないので 読めたのはCだけですが… 久しぶりにまともなスレになった気がします >>168 P(A)をP(B)で割ることによって P君の勝つ数とQ君の勝つ数が導ける P(A)/P(B)=(P君の勝つ数)/(Q君の勝つ数) {n(n+2)−k−1}/{n^2(n+1)−kn} P(A)/P(B)=―――――――――――――――――――― {n(n+2)−k}/{n(n+1)^2−k(n+1)} =(n+1)(n^2+2n−1−k)/{n^2(n+2)−nk} ∵[n≧2,n(n+1)−1>k≧1] ∵の範囲でnとkをいろいろと変えて見ることにより 様々な勝率が導ける 計算知能にそのまま入力するだけで通分と約分を 自動計算してくれるので試してごろうじろう ■Wolfram入力例 (n+1)(n^2+2n−1−k)/{n^2(n+2)−nk},k=2,n=3 三角形ABCにおいて、 AからBCへ下した垂線をAD, BCの中点をMとする。 BD > CDとすると BD^2 - CD^2 = 2BC・MD を示せ。 BD-CD=2MD ⇔ BD-MD=CD+MD こんな感じか >>206 BD^2 - CD^2 = (BD+CD) (BD-CD) = BC ( (BM+MD) - (CM - MD) ) = 2BC・MD (∵ BM=CM ) 特に垂線である意味がないし「垂線の定理」って何かの間違いでは? >>213 AB^2 - AC^2 = (BD^2 + h^2) - (CD^2 + h^2) = BD^2 - CD^2 = ... = 2 BC・MD なるほど 自然数a,b,cは以下の2つの等式を共に満たす。 a+b^2=c^3 a^2-b(b+c)=a+b+c (1)このような(a,b,c)を一組求めよ。 (2)(1)で求めたもの以外に(a,b,c)の組が存在するなら、全て決定せよ。 >>216 Prelude> [(a,b,c)|a<-[1..100],b<-[1..100],c<-[1..100],a+b^2==c^3,a^2-b*(b+c)==a+b+c] [(4,2,2)] Prelude> [(b,c)|b <-[1..1000],c<-[1..1000],(c^3-b^2)*(c^3-b^2-1)==(b+c)*(b+1)] [(2,2)] 変な質問ですいません 最初にピタゴラスの定理を証明した人って、どういう発想で定理が正しいと考えたのでしょうか?直感でしょうか、経験的によく知られていたのでしょうか? ピタゴラスとエウクレイデスはどっちの方が賢いですか? >>216 a=-1,b=-3,c=2 a=0,b=-1,c=1 a=0,b=0,c=0 a=-1,b=1,c=0 a=4,b=2,c=2 >>219 証明はどうだかわからないがピタゴラスが多いついたのはタイルを見て予想したと言われているらしい 直角二等辺三角形を敷き詰めると直角二等辺三角形の場合にはピタゴラスの定理が成り立つことがすぐにわかる ピタゴラスはそこから直角三角形なら常に成り立つのではないかと考えたということのようだ リーマン予想を証明したいのですが、まずは何から勉強をした方が良いのでしょうか? 証明した人に聞いてください 例えばAtiyahとかdeBrangeさんなど リーマン予想が証明されたとしたら、残りの他の全ての数学の未解決問題を自分一人で解決したい。 そのためにはやはり、数学の全分野だけでなく、物理学とか哲学とか計算機科学の全分野も究めないと無理なレベルでしょうか? とりあえず、二項定理くらいはわかるようになりましょうよ、ヒマラヤさん ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる