=IF(MAX(MAX(B3+C3/60+D3/3600,C3+D3/60,D3/5)-MEDIAN(B3+C3/60+D3/3600,C3+D3/60,D3/5),MEDIAN(B3+C3/60+D3/3600,C3+D3/60,D3/5)-MIN(B3+C3/60+D3/3600,C3+D3/60,D3/5),MIN(B3+C3/60+D3/3600,C3+D3/60,D3/5)+60-MAX(B3+C3/60+D3/3600,C3+D3/60,D3/5))>30,"x","o") |
私のはすべて、針を結ぶ線に中心点が乗ったのは囲われていないということで×にしています。
まず、最終形の74ですが次のとおりです。
=IF(MDETERM(N(MOD(TIME(B3,C3,D3)*({4;48;2880}-{4,48,2880}),2)>1)),"○","×")
これは、次の判定法(No4)です。
①各辺の作る三角形が中心を囲んでいない場合、円を半円に分けた場合、3点とも半円の一方に集まる。
②ただし、どこで半円に分けるかが大問題なので、時計を回し、各針が0時を指すようにして、そのいずれかで、3点はが右半分に集まれば×、どの場合も集まらなければ〇と判定する。
これで、できたのが85です。
=IF(AND(MMULT(N(MOD(TIME(B3,C3,D3)*({4;48;2880}-{4,48,2880}),2)>1),{1;1;1})),"○","×")
このMMULT前の配列をなんとなく眺めていたら、×の場合明らかに逆行列が作れないが、〇の場合が逆行列があるような気がした。
それが当たって、MINVERSEとISERRで82
でも、考えて見たら、逆行列ができるかできないかは行列式が0になるかどうかで決まるのでMDETERMで判定できる。
これが一挙に短縮した74です。
これ本当に偶然で、配列の1,0が逆だったらどのケースも逆行列が作れるんで気が付かなかったはず。
参考までに他に考えた判定法を書いておきます。
判定No1
三角形のいずれかの2辺が円内で、中心点を挟む
(VBAはこの方法です)
ワークセルを使えばちゃんと判定できましたが、とても一つの式に纏める気力は起きなかった。
判定No2
三角形の頂点から中心線に引いた直線のいずれかが、円内で他の一辺とクロスする
これも断念
注.両方共、」「円内」ってのが重要
また、両方共、辺の直線の式を計算してるため、6:0:0とか0:0:0とかは計算式がエラーになります。
判定No3
これが初めて式にできた方法
①各針の指す点と中心点を結ぶと、円グラフのように、円を三分割する角度が三つできる
②いずれかの角度が180度を超えていたら×、三つ共180度未満なら〇
ただ、この方法は0:0:0に対する処理が必要で短くならず105どまりでした。
=IF(OR(B3:D3)*AND(MOD(MMULT({1,-1},LARGE(MOD(TIME(B3,C3,D3)*{4;48;2880},2),{1,2,3;2,3,1})),2)<1),"○","×")
長々と失礼いたしました。
(y sakudaさん)
91=TEXT((MOD(C3+D3/60-D3,60)-30)*(MOD(C3+D3/60-D3,60)-MOD(B3*5+C3/12+D3/720+30-D3,60)),"×;○")
投稿情報: maron | 2018年3 月31日 (土曜日) 午後 08時01分
すみません、出先なので考え方だけ
その1(87)
2つの針の角度をmmult で求めて絶対値を180度相当から引いて絶対値、これを3つ足して180度相当なら内側
その2
針の角度をmmultで求めて、角度を大きい順に並び替え、隣の針との角度の最大値が180度超えたら外
その3(90) 三角関数の方法
imabs(imsum(imexp(mmult(c3:e3,{係数})&“i”)))>1なら外
明日upします
投稿情報: ni | 2018年3 月31日 (土曜日) 午後 08時51分
先程帰りましたけど、、、、
ちらっと、、、気になって・・・・安易に、、問題にしました。
えーーーー
皆さん、、、すごいですねーーー
なんでも、、、どなたかが、、、、解いちゃうのね!!
問題作成の、、、専門でも・・・いけそうですねーーー
なら、、、
時計問題
・・・
閃き型3問、、、出すかも。
投稿情報: jyo3 | 2018年3 月31日 (土曜日) 午後 10時04分
あと、、、
今回
niさんが
3角関数・・・って
なんで、、、わたし・・・・
思ったのかなーーーー
・・・・・・・・・・・・・・なんかあった気がするが・・・忘れた。
投稿情報: jyo3 | 2018年3 月31日 (土曜日) 午後 10時08分
ジョー3の理屈は私の105と同じですね。
中身ちゃんと見てませんが、普通のケースが誤判定します。どこか違ってる?
maronnさんの91はさっぱり理屈が分かりません^^;
投稿情報: y sakuda | 2018年3 月31日 (土曜日) 午後 10時12分
しかし、今回のは私には面白かったですけど、変な感じです^^
最初VBA作ってる間、つまり第一週末の時点で式のアイデア何も持ってませんでした。
中心角で判定するのを思い付いて、117かなんかで出来ましたが、そこから先二けたまでが遠かった。
何時もは長さはともかく最初の二時間くらいでそこから後、指加えて見てる。
今回は数日何もできず、そこから後できるなんてとってもレアです。
投稿情報: y sakuda | 2018年3 月31日 (土曜日) 午後 10時20分
>maronさんの91はさっぱり理屈が分かりません^^;
1)秒はそのままで、長針は「分+秒/60」、短針は「時*5+分/12+秒/(12*60)」にします
2)秒針を0に位置にするため、それから秒を引きます(「分+秒/60-秒」、「時*5+分/12+秒/720-秒」)
3)しかし、それではマイナスになる場合があるので、MOD(C3+D3/60-D3,60)とします
4)分が30分(秒)より前か後か判定するため、-30として、プラスかマイナスかを判定します、これが「MOD(C3+D3/60-D3,60)-30」
5)先程の、換算時<換算分「(MOD(C3+D3/60-D3,60)-MOD(B3*5+C3/12+D3/720+30-D3,60))」を出して、
6)条件4)*条件5)として、+なら○、-なら×としています
投稿情報: maron | 2018年4 月 1日 (日曜日) 午前 03時11分
>閃き型3問、、、出すかも
◆jyo3さん、問題待っています。
◆今回の問題は、2週間を少しも長く感じませんでした。
投稿情報: maron | 2018年4 月 1日 (日曜日) 午前 03時31分
=TEXT((MOD(B3*5+C3/12-D3,60)-30)*(MOD(C3+D3/60-D3-30,60)-MOD(B3*5+C3/12-D3,60)),"○;×")
maronさんの式を見た時わたしの式と全く同じではと思ってしまった、、、
でも文字数が違う、、、中も微妙に違う、、、
投稿情報: からくち | 2018年4 月 1日 (日曜日) 午前 05時12分
書き忘れ、、、
わたしの式は6:0:0の様に線上は○です
投稿情報: からくち | 2018年4 月 1日 (日曜日) 午前 05時17分
>でも文字数が違う、、、中も微妙に違う、、、
◆でも、発想は同じではないでしょうか。
>わたしの式は6:0:0の様に線上は○です
◆maronの式は、6:0:0は×です。
投稿情報: maron | 2018年4 月 1日 (日曜日) 午前 05時24分
>maronの式は、6:0:0は×です
やっぱ違うのか、、、
>発想は同じではないでしょうか
式を見る限り、、、同じではと思います
この問題、、、最初のコメントを見ると一目瞭然ですが
最初からこの考え方しか書かなかった
最初120位からで、、、最後に
D3/720は数値が小さく結果を変動させる程では無い事を確認出来たので
これを消して、、、
投稿情報: からくち | 2018年4 月 1日 (日曜日) 午前 06時53分
maronさん解説ありがとうございます。
しばらく考えてましたがまだ理解できてない^^
針を0の所にずらしてって発想は私の74でもやってますが、判定基準が見えてないから理解できないんだろうなと思ってます。
まあ、これ、自分のだってしばらく後で見たら、判定の考え方書いたメモ見ても理解できなさそうですからしょうがないんですけどね。
からくちさんのも同じ発想なのは式の形から推測できるけど、線上の○×の違いがどこで発生してるのか見えない^^
しかし、ジョー3の問題考える方向性ってのはすごいですねーー
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午前 10時40分
からくちさんので試してみると、0:12:31等線上に乗ってると判定されてるケースが結構出てくる。
私のにも、線上〇と出ちゃう式が残ってたんで試してみると×つまり外と判定されます。
1週を1.0とした場合1000分の1程度の差で判定が分かれてるってことなんですが、
>D3/720は数値が小さく結果を変動させる程では無い事を確認出来たので これを消して、、、
の影響なんかな?
私がの式でチェックすると、完全に線が中心点を通るのはN:30:0 とか6:0:0の時だけでした。
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午前 11時20分
今帰ってきました
その1
87=IF(SUM(ABS(ABS(MMULT(B3:D3,{-360,360,0;66,6,72;1.1,-71.9,-70.8}))-2160))=2160,"〇","×")
その2
119=IF(MAX(MMULT(LARGE(MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72}),{1,2,3}),{1,0,-1;-1,1,0;0,-1,1})+{0,0,4320})>2160,"X","O")
その3
90=IF(IMABS(IMSUM(IMEXP(MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72})*PI()/2160&"i")))>1,"×","〇")
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 05時19分
お互い様でしょうが、niさんのもパッと見じゃさっぱり分かんないw
それぞれに、一言どういう発想かコメント願えませんか^^
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午後 05時23分
解説その1
MMULT(B3:D3,{-360,360,0;66,6,72;1.1,-71.9,-70.8})
これは、2つの針間の角度を計算で、2160が180度に相当します。
プラスマイナスも無茶苦茶なので、絶対値を計算して
180度(2160)を引いて絶対値をとることで、何角って言ったっけ?
それを3つ足してやると、三角の中に中心があると180度になります。
元々、2つの針の角度の180度より小さい方の角度を3つ足して360度になれば○という考えでやりました。
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 05時35分
解説その2
MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72})
は、おのおのの針の角度
LARGE(MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72}),{1,2,3})
で角度が大きい順に並び変えて
MMULT(LARGE(MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72}),{1,2,3}),{1,0,-1;-1,1,0;0,-1,1})
で大きい角度から小さい角度を引く針間の角度差計算
一番小さい角から一番大きい角を引くと360度小さい値になってしまうので、そこだけ360度を足す
+{0,0,4320}
で、その中で一番大きい角度が180度を超えていたら三角の外という判定です。
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 05時42分
>元々、2つの針の角度の180度より小さい方の角度を3つ足して360度になれば○という考えでやりました。
これは最初の式ですかね?
中心角で判定する奴ですね。
二つの針の角度両方だして小さい方足して360はなるほどです。
思いつかなかった。
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午後 05時42分
解説その3
MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72})*PI()/2160
各々の針の角度をラジアンで求めます。
&"i" で複素数にしちゃいます。
IMEXP(MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72})*PI()/2160&"i")
e^-Θ はオイラーの式で、cosΘ+isinΘ という複素数になります。
IMSUM(IMEXP(MMULT(B3:D3,{360,0,0;6,72,0;0.1,1.2,72})*PI()/2160&"i"))
で複素数ベクトルの足し算
IMABS はこの合成された複素数の絶対値、つまり合成ベクトルの長さになります。
中心が内側にあるとこの合成ベクトルの長さが1以下になります。
jyo3さんの「三角関数で」をヒントにsin,cosを考えたんですけど長くなってしまうので、
複素数でいっぺんに計算してみました。
秒針の角度を引いて1と短針、長針のベクトル合成してみましたが、1文字しか減りませんでした
89=IF(IMABS(IMSUM(1,IMEXP(MMULT(B3:D3,{360,0;6,72;-71.9,-70.8})*PI()/2160&"i")))>1,"×","〇")
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 05時53分
ちらっ・・・
皆さん凄いです。
さてさて、、
わたしは、、、
あれこれ、
しなきゃーーーが、多くて、
・・・・で、、、集中できなかった。
投稿情報: jyo3 | 2018年4 月 1日 (日曜日) 午後 05時55分
niさんありがとうございます・・・・って言っても最後のはさっぱり分かってないw
今晩研究してみんべーー
しかし、私もMDETERMなんか持ち出したけど、複素数まで飛び出すかいなwww
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午後 06時02分
でも、、、
無責任に、、、作るのは・・・・長い時間が、、、要らないこともある。
この頃、思って来た。
皆さんを信じて、、、、
回答例がなくても、、、いいかなーーーー
(一応今までは{今回も}回答例があれば、、、長くてもいいよね)
って感じだったけど、、、無視してもいいかもね、、、
投稿情報: jyo3 | 2018年4 月 1日 (日曜日) 午後 06時06分
私も逆行列わかりません^^;
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 06時10分
昔の問題をたまに、、、ちらっと見ます。
すると、、、えーーーーわかんない。
分かるまで、見てると、、、すげーーー疲れます。
。。。。
この問題も、、、、疲れそうだなー・・・・
投稿情報: jyo3 | 2018年4 月 1日 (日曜日) 午後 06時26分
>私も逆行列わかりません^^;
似たようなもんです。
一応知ってるってだけで、かなりの期間数学飯のタネにしてましたが、多次元連立方程式解いたりなんてことは全く縁がないから、使ったこと無いです。
大体線形数学なんて50年前大学で単位取った時以来近づいてませんwww
従ってExcelさんでもMINVERSEもMDETERMも試したのも初めて。
気が付いたのは、3×3のしかも値が1,0の単純な行列眺めててもしやと思っただけで偶然みたいなものです^^
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午後 06時26分
>e^-Θ はオイラーの式で
あ、マイナスはいらなかった
e^Θ=cosΘ+i*sinΘ でした
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 06時29分
>オイラーの式で
かすかに覚えてる程度
これも間違えなく50数年ぶりw
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午後 07時14分
ダメな86=IF(SUM(ABS(ABS(MMULT(B3:D3,{-360,360,0;66,6,72;1.1,-71.9,-70.8}))/2160-1))=1,"〇","×")
私のその1で、2160引いて絶対値が2160の判定を、
2160で割って1引いて1になるとしたのですが、63個もNGでした。
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 08時53分
>2160で割って1引いて1になるとしたのですが、63個もNGでした。
割り算しちゃうと特殊な場合を除いて、誤差が出ます。ですから解析的なのは放棄しました。
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午後 09時15分
三角関数というか、複素数のやつは同じ割り算でしかもπまで掛けているのにうまくいったんですけどね
投稿情報: ni | 2018年4 月 1日 (日曜日) 午後 10時22分
>三角関数というか、複素数のやつは同じ割り算でしかもπまで掛けているのにうまくいったんですけどね
なんででしょうね??
niさんのは線に乗ったのOKって判定ですね。
2番目のは基本的に私の105とやってること同じなんで一応理解できました。
最初のは71.9とかどこから0.1が出てきてなんでそれでうまく行くのか理解できてない。
(小さい方を足して360ならOKってのはなるほどなんですけどね)
三角関数の奴は座標を出すとこまでは分かりましたが、そこから・・・・・・
今回のは他の方の式全然理解できない^^;
しかし、今回ラジアン出すのにTime使う方いなかったのは意外。
私はNPVとか色々やったけど、結局TimeでMod1にするのが一番短かったです。
投稿情報: y sakuda | 2018年4 月 1日 (日曜日) 午後 10時54分
遅ればせながら、1週間前に一応やったということで
なんの工夫もないものですが、
139
=IF(AND(SMALL(B3*{5,0,0}+C3*{"2:0",1,0}+D3/{720,60,1},{1,2,3})+{30,30,-30}>SMALL(B3*{5,0,0}+C3*{"2:0",1,0}+D3/{720,60,1},{2,3,1})),"○","×")
それにしても、皆さんよくいろいろ考えますね。
さっぱりわからない、、とてもついていけません。。
投稿情報: min | 2018年4 月 1日 (日曜日) 午後 11時26分
>今回ラジアン出すのにTime使う方いなかったのは意外
他の方は分かりませんが、、、
わたしは計算にTIMEを使う気が起きません
理由は最大値が32767
という事は最大time(32767,32767,32767)です
これ、、、10:13:07です
勿論その理由は分かっています
でも、、、
投稿情報: からくち | 2018年4 月 2日 (月曜日) 午前 08時20分
若し、、、ジョー3さんの許可が下りれば
この問題のPART2をあります
ただジョー3さんもあるようなので被っていなければの話ですが、、、
投稿情報: からくち | 2018年4 月 2日 (月曜日) 午前 08時23分
minさんのも中心角ですね。
しかし、”2:0”かけてる意味が分からなくて悩んじゃった^^
投稿情報: y sakuda | 2018年4 月 2日 (月曜日) 午前 09時42分
ジョー3とからくちさんの時計第2、第3が続いたら、楽しそうだけど、その反面フラストレーションの塊りになっちゃうかも^^
投稿情報: y sakuda | 2018年4 月 2日 (月曜日) 午前 10時16分
>この問題のPART2をあります
>ただジョー3さんもあるようなので被っていなければの話ですが、、、
どうぞ、どうぞ、、、素材提供ですから、、、
からくちさんと、かぶらなければ・・・・
私がART3でいいです。
>それにしても、皆さんよくいろいろ考えますね。
>さっぱりわからない、、とてもついていけません。。
わたしも、そうです。
よくみなさん、、、考えますねーー
投稿情報: jyo3 | 2018年4 月 2日 (月曜日) 午前 11時11分
maronさんと、からくちさんのやっと式の意味分かった^^
niさんの1と3は理解するのあきらめーー
投稿情報: y sakuda | 2018年4 月 2日 (月曜日) 午後 12時24分
>71.9
係数は文字数減らすため1/10してます。
投稿情報: ni | 2018年4 月 2日 (月曜日) 午後 12時50分
>係数は文字数減らすため1/10してます。
そりゃわかるんですけどね、なんで1減じてるのか、式のからくりが理解できてないから見えてこないってだけです。
説明読んで式眺めて、中の数値見ても、分かった!って感じがないのでどこかでつまづいちゃってるんでしょうね^^
投稿情報: y sakuda | 2018年4 月 2日 (月曜日) 午後 01時45分
しかし、、、、、
>複素数でいっぺんに計算してみました。
複素数は、、、高校の時まじめに勉強しなかった。
今回は、ちらっ、、ちらっ・・・皆さんの進行を、、、見て、、、
自分は集中できませんでしたが、、、、
どもども、、、、
からくちさんのパート2
お待ちいたします。
投稿情報: jyo3 | 2018年4 月 2日 (月曜日) 午後 02時07分
>お待ちいたします
ありがとうございます
では、、、早速送ります
投稿情報: からくち | 2018年4 月 2日 (月曜日) 午後 02時42分
今、、、送りました
今回の問題が出題されましたら
今回のみですが、、、
文字数は解答日まで書かないでください
使っている関数名は書いて構いません
ただしその関数の使用個数は書かないでください
余りに小さな文字数で気落ちしない為に、、、わたしがですが
投稿情報: からくち | 2018年4 月 2日 (月曜日) 午後 03時12分
>使っている関数名は書いて構いません
>ただしその関数の使用個数は書かないでください
新機軸^^
投稿情報: y sakuda | 2018年4 月 2日 (月曜日) 午後 03時35分
>ジョー3とからくちさんの時計第2、第3が続いたら
◆楽しみです。当分時計シリーズが続きそうですね。
投稿情報: maron | 2018年4 月 2日 (月曜日) 午後 05時24分
>文字数は解答日まで書かないでください
>使っている関数名は書いて構いません
>ただしその関数の使用個数は書かないでください
もろに・・・うれしい、、
金曜まで忙しいとして、、、
土曜・・・げげーーーーそんな、短いの出来ませーん、、、
で、、、終わり・・・が、なくなる。
投稿情報: jyo3 | 2018年4 月 2日 (月曜日) 午後 06時56分
私のも、、、だいたい出来まして、、、、、
題は、、、「孫がケーキを食べる時」です。
2問1組です。
投稿情報: jyo3 | 2018年4 月 2日 (月曜日) 午後 07時47分
>今、、、送りました
ありがとうございます。
まだ月曜日ですがこれからアップします。m(__)m
投稿情報: くまぷー | 2018年4 月 2日 (月曜日) 午後 08時28分
>なんで1減じているのか
角度の計算と、2つの針の角度差の計算をいっぺんにやっています
投稿情報: ni | 2018年4 月 2日 (月曜日) 午後 09時55分
>角度の計算と、2つの針の角度差の計算をいっぺんにやっています
すげーーー
きちんと見てないけど、、、、
投稿情報: jyo3 | 2018年4 月 2日 (月曜日) 午後 10時31分
>角度の計算と、2つの針の角度差の計算をいっぺんにやっています
ああ、そうか^^
投稿情報: y sakuda | 2018年4 月 3日 (火曜日) 午後 12時40分