中学2年問題出題者解答例
出題者解答例ですので出来るだけ定番な式で
=ROUND(INDEX(MMULT(MINVERSE($A5:$B6),
REPLACE($C5:$C6,1,FIND("=",$C5:$C6),)*1),COLUMN(A1)),)
(からくちさん談)
« 第67回 エクセルで方程式(その2) | メイン | 第68回 この列、何番目? »
最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。
画像を読み取れない場合は 別の画像を表示してください。
アカウント情報
(名前は必須です。メールアドレスは公開されません。)
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
からくちさんの出題者解答はやはり逆行列ですねーー
基本的には私の88も同じです。
=ROUND(INDEX(MMULT(MINVERSE($A5:$B6),--MID($C5:$C6,FIND("=",$C5:$C6)+1,9)),COLUMN()-4),)
中学生バージョンは132どまりでした
=-1^COLUMN()*(OFFSET($G5,,-COLUMN())*MID($C6,FIND("=",$C6)+1,9)-OFFSET($G6,,-COLUMN())*MID($C5,FIND("=",$C5)+1,9))/($A5*$B6-$B5*$A6)
これはたぶん大丈夫と言うことで、誤差処理はしてません。
これを短縮しようとして、分母を関数に置き換えた131は誤差がでるので、ちゃんとしたものにするにはRoundが必要になっちゃいましたので、参考例です。
=-1^COLUMN()*(OFFSET($G5,,-COLUMN())*MID($C6,FIND("=",$C6)+1,9)-OFFSET($G6,,-COLUMN())*MID($C5,FIND("=",$C5)+1,9))/MDETERM($A5:$B6)
投稿情報: y sakuda | 2010年8 月21日 (土曜日) 午後 08時05分
MINVERSE ????
な、、なな、、、、、なんだこ・・・・・・・・・りゃーーーーーー
投稿情報: ジョー3 | 2010年8 月21日 (土曜日) 午後 08時44分
MINVERSE、、
そんな計算してくれるのかぁ~、、、ww
わたしの116は間違いで、119でした、、
=ABS(SUM(MID(IF({1;0},$C6,$C5),FIND("=",IF({1;0},$C6,$C5))+1,15)
*IF(D5,$A5:$A6,$B5:$B6)*{1;-1}))/ABS($A5*$B6-$B5*$A6)
投稿情報: む印 | 2010年8 月21日 (土曜日) 午後 08時51分
>MINVERSE ????
これを使いたかったんですよ。
逆行列を求める関数・・・
・・・で、私のは136で中学生・・・
=(IF(COLUMN()=5,$B6,-$A6)*RIGHT($C5,LEN($C5)-FIND("=",$C5))-IF(COLUMN()=5,$B5,-$A5)*RIGHT($C6,LEN($C6)-FIND("=",$C6)))/($A5*$B6-$A6*$B5)
特に短縮もしませんでした (^^ゞ
投稿情報: くまぷー | 2010年8 月21日 (土曜日) 午後 08時51分
sakudaさんの88私のpcではうまくいかないんですが??
投稿情報: min | 2010年8 月21日 (土曜日) 午後 08時58分
忘れてました、、
私の119はCtrl+Shift+Enterです、、、
投稿情報: む印 | 2010年8 月21日 (土曜日) 午後 08時59分
小手先でちょっと縮めた86は
86=ROUND(INDEX(MMULT(MINVERSE($A5:$B6),MID($C5:$C6,FIND("=",$C5:$C6)+1,5)+0),2-(D5=0)),)
む印さんもやっぱりd5を使いましたね。
投稿情報: min | 2010年8 月21日 (土曜日) 午後 09時00分
>d5を使いましたね。
はぁ~い^^;、参りました、、
>・E5の式をF5にコピーして下さい
まさかx・yが配列として1式で出来ちゃうなんて思っても見ませんでした、、、
MMULT & MINVERSE おそるべし!!
投稿情報: む印 | 2010年8 月21日 (土曜日) 午後 09時11分
今回の問題、行と列、、MINVERSEってあったよなって調べたら
連立方程式で使うっ
ってことで定番の式があることを発見。
でもさっぱり仕組みが分かりませんでした。
MINVERSEを使わない
113{=IF(D5,(MID(B5,FIND("=",B5)+1,5)-D5*$A5)/A5,SUM(MID(C5:C6,FIND("=",C5:C6)+1,5)*IF({1;0},-B6,B5))/(A6*B5-A5*B6))}
式は単純ですが、ちょっとだけ絶対参照と相対参照を工夫しました。
投稿情報: min | 2010年8 月21日 (土曜日) 午後 09時17分
>MMULT & MINVERSE おそるべし!!
「EXCEL 1次方程式」で検索すれば、出てきますよ。
投稿情報: 通りすがり | 2010年8 月21日 (土曜日) 午後 09時20分
>sakudaさんの88私のpcではうまくいかないんですが??
E5に入れてないからじゃないかな?E列専用
投稿情報: 通りすがり | 2010年8 月21日 (土曜日) 午後 09時36分
そうかあ、sakudaさんの式がうまくいかないのは私のpcだけなのかな?
自分で式を組み立てたときにもF9押したときに再計算しないので、ちょっと工夫してました。
投稿情報: min | 2010年8 月21日 (土曜日) 午後 09時53分
>絶対参照と相対参照を工夫しました。
おお、なるほど! うまいなぁ~
>「EXCEL 1次方程式」で検索すれば、出てきますよ
あぅ、、検索かぁ~、、、
そんなことさえ思いつけなくなってしまいました、、、
投稿情報: む印 | 2010年8 月21日 (土曜日) 午後 10時04分
>わたしの116は間違いで、119でした、、
む印さんの116でよいのでは?
116{=ABS(SUM(MID(IF({1;0},$C6,$C5),FIND("=",IF({1;0},$C6,$C5))+1,15)*IF(D5,$A5:$A6,$B5:$B6)*{1;-1})/($A5*$B6-$B5*$A6))}
これでもいいのかな?
112{=SUM(MID(IF({1;0},$C6,$C5),FIND("=",IF({1;0},$C6,$C5))+1,15)*IF(D5,$A5:$A6,-$B5:$B6)*{1;-1})/($A5*$B6-$B5*$A6)}
投稿情報: min | 2010年8 月21日 (土曜日) 午後 10時06分
ちょっと出かけてました。
>E5に入れてないからじゃないかな?E列専用
Column()使ってますからE、Fに入れないとおかしくなりますが、それ以外は思い当たる要素ないです^^;
投稿情報: y sakuda | 2010年8 月21日 (土曜日) 午後 10時06分
>E、Fに入れないとおかしくなりますが
当然E、Fに入れているのですが、入れたばかりのときはいいんですが、
f9押しても再計算しないんです?
投稿情報: min | 2010年8 月21日 (土曜日) 午後 10時13分
なるほど、X,Yの順とA列B列の逆転を実現するのに、D列使うっての全く思いつかなかったな^^
minmaxさん、79は出さないんですか?
コピーと言う条件には外れますが、一つの考え方だと思います。
投稿情報: y sakuda | 2010年8 月21日 (土曜日) 午後 10時13分
>f9押しても再計算しないんです?
なんでや??
と言ってもねーー
投稿情報: y sakuda | 2010年8 月21日 (土曜日) 午後 10時20分
>なんでや??
前からたまにそういうことがありましたが、それが一般的だと思っていました。
MID($C5:$C6,FIND("=",$C5:$C6)+1,5)+0
だと再計算OKなんですが、
--MID($C5:$C6,FIND("=",$C5:$C6)+1,9)
だと再計算NGなんです。
おいらのエクセルがおかしいのかあ?
79は間違いなくsakudaさんと一緒ですから。
良かったらsakudaさんから出してください。
投稿情報: min | 2010年8 月21日 (土曜日) 午後 10時28分
>む印さんの116でよいのでは?
ほんとだ、最初のファイルみてたら合ってました、、
ファイルをコピーして別式考えてるうちにABSの括弧を間違えてたみたい、、
お恥ずかしい、、
>112
これ、くまぷーさんの解答見ていたときに私も気付きました、、
お恥ずかしい、、×2
投稿情報: む印 | 2010年8 月21日 (土曜日) 午後 10時31分
>79は間違いなくsakudaさんと一緒ですから。
じゃ、推測があってるかどうか、確認です。
E5:E6を選択して配列数式
{=ROUND(INDEX(MMULT(MINVERSE(A5:B6),--MID(C5:C6,FIND("=",C5:C6)+1,9)),{1,2}),)}
投稿情報: y sakuda | 2010年8 月21日 (土曜日) 午後 10時46分
全く一緒です。って言いたいところですが、
やはりsakudaさんの式では、私のpcではF9で再計算してくれません。
中身は一緒ですが、
{=ROUND(INDEX(MMULT(MINVERSE(A5:B6),MID(C5:C6,FIND("=",C5:C6)+1,5)+0),{1,2}),)}
でした。
投稿情報: min | 2010年8 月21日 (土曜日) 午後 11時03分
>私のpcではF9で再計算してくれません。
www
しかし、そういう選択的なトラブルってのも珍しい
投稿情報: y sakuda | 2010年8 月21日 (土曜日) 午後 11時10分
>私のpcではF9で再計算してくれません。
よくわからないのですが私のPCでは
F9を押した時にE5,F5の数値は変わらないけれど
○×の判定は再計算しています。
ちなみにエクセル2007です。
投稿情報: くまぷー | 2010年8 月22日 (日曜日) 午前 09時00分
>F9を押した時にE5,F5の数値は変わらないけれど
>○×の判定は再計算しています。
ね、2007ではそうなるんでしょうかね。
>特に短縮もしませんでした (^^ゞ
ということなので、
くまぷーさんのを適当に短縮してみました。
MINVERSE使わない中では一番短いのかな。
106=(IF(D5,-$A6,$B6)*MID($C5,FIND("=",$C5)+1,5)-IF(D5,-$A5,$B5)*MID($C6,FIND("=",$C6)+1,5))/($A5*$B6-$A6*$B5)
投稿情報: min | 2010年8 月22日 (日曜日) 午前 10時54分
>ね、2007ではそうなるんでしょうかね。
あら、本当ですね。
実は2010でやってたのですが、そっちはOK。
また勤務先で2002でやった時もOKでした。
今、2003でやってみましたが症状は出ません。
2007でだけ発生する症状みたいですね。
minmaxさんご指摘のように、--を+0等に書き換えれば良いようですが・・・・
2007のバグなのかな?
投稿情報: y sakuda | 2010年8 月22日 (日曜日) 午後 05時38分
ところで、変なケース見つけました。
B5を0にした場合、minmaxさんの113の式だけ、0Divのエラーになっちゃう
ぱっと見じゃ理由が分からないんですが・・・・
投稿情報: y sakuda | 2010年8 月22日 (日曜日) 午後 05時45分
>ぱっと見じゃ理由が分からないんですが・・・・
b5が0の場合があるとすると
ある意味私の113の式の場合yの答えがエラーになるということは
間違いではなくなります。
b5が0の場合
私の113以外の式で結果として得られたx,yの値をc5に表示された式に当てはめると式が成立しなくなります。
あくまでもこの問題の設計では
a5からb6に0が入っている場合、
c列に表示されている式が成り立たなくなるため
「A5:B6に0を除く-99~99の数値を入れてください」
と0の入力が禁止されているものと思いますが。
ついでに、くまぷーさんの式の短縮ちょっと忘れていた個所がありもう2文字減らして104でもOKでした。
投稿情報: min | 2010年8 月22日 (日曜日) 午後 06時56分
>=(IF(D5,-$A6,$B6)*MID($C5,FIND("=",$C5)+1,5)-IF(D5,-$A5,$B5)*MID($C6,FIND("=",$C6)+1,5))/($A5*$B6-$A6*$B5)
minさん、短縮ありがとうございます。
・・・で、素朴な疑問なんですが
X=0になる場合・・・、つまり式が
2X+y=1
x+y=1
・・・のような式は考慮しなくてもいいんですかねぇ?
x=0だとyの答えがおかしくなりませんか?
投稿情報: くまぷー | 2010年8 月22日 (日曜日) 午後 07時32分
くまぷーさんどうもです。
確かからくちさんの緻密な設計ではx、yの値は0にならないように出来ていたかと?
ちょっと外出中
投稿情報: min | 2010年8 月22日 (日曜日) 午後 07時51分
>くまぷーさんどうもです。
こちらこそです。
・・・で、完全に私事なんですが
明日、人間ドックなので午後8時(あと約5分)で絶食・・・
明日は検査が終わるまで絶飲食・・・(T.T)
投稿情報: くまぷー | 2010年8 月22日 (日曜日) 午後 07時56分
>私の113以外の式で結果として得られたx,yの値をc5に表示された式に当てはめると式が成立しなくなります。
>「A5:B6に0を除く-99~99の数値を入れてください」
あら、本当だ^^;
問題の対象外ですねーー
投稿情報: y sakuda | 2010年8 月22日 (日曜日) 午後 09時29分
私は普段殆どExcel2000を使用しているのですが
今日、2003を使用する機会があり、数式バーのfxをクリックしたら
関数の挿入BOXが出てきたので「連立方程式」で検索
真っ先にMINVERSE関数がヒットしました、、、!
あはは・・・自分の遅れすぎを痛感致しました(ToT)/~~~2003、2007、2010
投稿情報: む印 | 2010年8 月23日 (月曜日) 午後 07時33分
>関数の挿入BOXが出てきたので
使ったことないなw
しかし、この問題Minverseでは実質的に回答は同じになっちゃうんですが、中学生版は私自身は完敗でしたが、思わぬ手段があって面白かったです。
(思いつかなかった者の僻みかもw)
投稿情報: y sakuda | 2010年8 月23日 (月曜日) 午後 07時37分
>私自身は完敗でしたが、
・・・・・・私なんか・・・完敗^3・・・・ぐれーだな、、、、
投稿情報: ジョー3 | 2010年8 月23日 (月曜日) 午後 08時25分
>私自身は完敗でした
只今、正解者約1名(を望むけど・・・う~ん)の問題製作中
出題者解答例は出来上がった
後は問題を考えるだけ
ええっ?、、、問題がまだ出来ていないのに
出題者解答例はもう出来ている???
なんだ、、、何だ、、、難だ
投稿情報: からくち | 2010年8 月23日 (月曜日) 午後 09時03分
>中学生版
それしか思いつけず・・・
最初、思考に入るとき欄外に書いたのは111文字で
=ABS((MID($C5,FIND("=",$C5)+1,15)*IF(D5,$A6,$B6)-MID($C6,FIND("=",$C6)+1,15)*IF(D5,$A5,$B5))/($A5*$B6-$B5*$A6))
くまぷーさんの解答とよく似てましたが、B列をマイナスするアイデアは出てこず、、
配列で思考してみたものの、よけいに無駄が出来たみたいです、、
{=SUM(RIGHT(SUBSTITUTE(IF({0;1},$C5,$C6),"=",REPT(" ",9)),9)*($A5:$B6-A5:A6/2)*{1;-1})/($A5*$B6-$B5*$A6)*-1^(D5=0)}
こんな、血迷ったことまでしてました、、、orz
>正解者約1名(を望むけど・・・う~ん)の問題製作中
>なんだ、、、何だ、、、難だ×2
ひぇ~~~~~
投稿情報: む印 | 2010年8 月23日 (月曜日) 午後 09時27分
>ええっ?、、、問題がまだ出来ていないのに
>出題者解答例はもう出来ている???
・・・・・
・・・・・・・・・・・・・・
詰め将棋作るときは、、、、、
・・・・・
そんなことが、よくありましたけど、、、、、、
余詰みチェックと、、、、紛れのための駒配置とかで、,,問題完成が、、、
作為順完成より、、、、遅れて、,,,
投稿情報: ジョー3 | 2010年8 月23日 (月曜日) 午後 09時29分
>正解者約1名(を望むけど・・・う~ん)の問題製作中
なんだ、、、何だ、、、難だ×3
見たいような見たくないようなw
投稿情報: y sakuda | 2010年8 月23日 (月曜日) 午後 09時53分
私自身のここのコンセプトは、前にsakudaさんも言ったことがありますが、パズル的な要素を楽しむってことです。
ですから、定番の式があっても、もう少し小さなトランクに入るのではないかと工夫をしてみてます。
もう少したたみ方を工夫すれば小さくたためるのではないかと。
ですから、今回の問題を例にとっても皆さんの答えを見た後でもう少しこの式は短くなるのではないかと、つい考えてしまいます。
MINVERSEなんて関数仕組みがまだよくわかっていませんが、
これを使わなくても100は切れるんではないかと。。
ということでこの後少し考えてみます。
今日中に文字数がめでたく短くなったら再度顔を出します。
明日次の問題が出題なのでしょうか。
そうだとして、私は、今回土曜日までは問題の解答は考えても、明日以降土曜日までしばらくは顔を出さないと思います。
日曜日にはここに帰ってくるかもしれませんが。
投稿情報: min | 2010年8 月23日 (月曜日) 午後 10時48分
飲み過ぎましたm(__)m
投稿情報: min | 2010年8 月23日 (月曜日) 午後 11時32分
>日曜日にはここに帰ってくるかもしれませんが。
お待ちしています。
事情はわかりませんが、お体にお大事に・・・
>正解者約1名(を望むけど・・・う~ん)の問題製作中
う~ん、その1名とはいったい、誰を想定しているのだろう・・・
投稿情報: くまぷー | 2010年8 月24日 (火曜日) 午前 08時41分
>誰を想定しているのだろう・・・
もちろん、、、ジョー3さんです
投稿情報: からくち | 2010年8 月24日 (火曜日) 午前 09時25分
>>誰を想定しているのだろう・・・
>もちろん、、、ジョー3さんです
がはは、、、、
常連で、ただ一人、、、解けない・・・・・
・・・・・・
ってのは、、、想定できるが、,,,
・・・・・・・・・・・・・・
・・・・・・・
・・
投稿情報: ジョー3 | 2010年8 月24日 (火曜日) 午前 09時34分
>もちろん、、、ジョー3さんです
きっと、ジョー3の発想なくしては解けないような問題だなw
投稿情報: y sakuda | 2010年8 月24日 (火曜日) 午後 06時56分