今回の問題、、、出題者なのに面白い式を最後まで書けなかった
{=LOOKUP(OR(ABS(B3*5+INT(C3/12)-C3:D3)=30)+(ABS(C3-D3)=30),{0,1},{"X","O"})}
文字数は多少多めですがおそらく皆さんとは被っていないと思う式を解答案としました
そして式の構成もまた1番分かり易く説明も要らない式と思いましたので
(からくちさん)
« 第40回 時計の針2 | メイン | 第41回 時計の針3 »
最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。
画像を読み取れない場合は 別の画像を表示してください。
アカウント情報
(名前は必須です。メールアドレスは公開されません。)
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
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 |
遅れまして申し訳ありません。
宜しくお願い致します。
投稿情報: くまぷー | 2018年4 月 7日 (土曜日) 午後 08時50分
どうも、Lookupってのはうまく使えない^^;
ありきたりですが、74
=IF(OR(ABS(INT(MMULT(B3:D3,{60,60,0;-11,1,12;0,-12,-12})/12))=30),"O","X")
配列使って一気にやるのやめて、ダラっとかいた62
{=IF(OR(ABS(B3*5+INT(C3/12)-C3:D3)=30,ABS(C3-D3)=30),"O","X")}
minさんがおっしゃってましたが、CharをIFの代わりに使えばともに一文字減ります。
ちょっと遊んでみた244
=IF(OR(ABS(MAX(IMABS(IMSUB(IMEXP(-(B3*5+INT(C3/12))/30*PI()&"i"),IMEXP(-C3/30*PI()&"i"))),IMABS(IMSUB(IMEXP(-(B3*5+INT(C3/12))/30*PI()&"i"),IMEXP(-D3/30*PI()&"i"))),IMABS(IMSUB(IMEXP(-C3/30*PI()&"i"),IMEXP(-D3/30*PI()&"i"))))-2)<1%%%%),"O","X")
ただ、これは、辺の長さが2になる場合を探して判定してるとこが他の式と違います。
投稿情報: y sakuda | 2018年4 月 7日 (土曜日) 午後 09時04分
IF,OR,INTの62文字です
{=IF(OR((B3*5+INT(C3/12)-C3:D3)^2=900,(C3-D3)^2=900),"O","X")}
投稿情報: ni | 2018年4 月 7日 (土曜日) 午後 09時24分
ABSの代わりに^2か
全然考えなかったな。
投稿情報: y sakuda | 2018年4 月 7日 (土曜日) 午後 09時34分
◆CHAR・COUNT・FIND・TRUNCの76です。
{=CHAR(88-(COUNT(FIND("-30","-"&(B3*5+TRUNC(C3/12)-C3:D3)&"-"&C3-D3))>0)*9)}
投稿情報: maron | 2018年4 月 8日 (日曜日) 午前 04時56分
maronさんのなんでTrunc?このケースはINTで良いのでは?
長いけど出て無い奴94
=IF(AND(ISNA(MATCH(MOD(30+C3:D3,60),INT(MMULT(B3:D3,{60,0,0;1,12,0;0,0,12})/12),))),"X","O")
投稿情報: y sakuda | 2018年4 月 8日 (日曜日) 午前 08時46分
◆ABS・IF・INT・ORを使わないで、と思ったものですから。
投稿情報: maron | 2018年4 月 8日 (日曜日) 午後 01時45分
=MID("XOO",(B3*5+INT(C3/12)=MOD(D3+30,60))+(MOD(B3*5+INT(C3/12)+30,60)=C3)+(MOD(C3+30,60)=D3)+1,1)
MODの式がと思ったら、、、あった
投稿情報: からくち | 2018年4 月 8日 (日曜日) 午後 01時56分
>ABS・IF・INT・ORを使わないで、と思ったものですから。
こだわりねwww
投稿情報: y sakuda | 2018年4 月 8日 (日曜日) 午後 03時10分
帰ってきました。
maronさんのfindを見て、気になったのでちょっと関数を変えて短縮してみました。
60
{=IF(COUNT(FIND(30,B3*5+INT(C3/12)-C3:D3&9&C3-D3)),"O","X")}
昨日のコメント
>短縮を考えるなら50台まではいけるのではないかと思います。
昨日頭で考えた式をやってみました。
55
{=CHAR(88-9*OR((INT(B3*{5;0}+C3/{12;1})-C3:D3)^2=900))}
この式は無駄な計算をする無駄式ですが。。
今回は、短くではなく、どのような手法を考えるかのようですので邪道かもしれませんね。
投稿情報: min | 2018年4 月 8日 (日曜日) 午後 10時14分
無駄かどうかは別として、minさんスゲー
えも、両方共パッと見じゃ理解できないです^^;
ところで、時計シリーズの問題一題出来ました。
顰蹙買いそうな問題ですが、一応できました。
面白くもない式ですが、200程度では出来そうです。
ま、minさんの今回のみると、こんなのでも100前後でやる人出てくるかもですねーー
投稿情報: y sakuda | 2018年4 月 8日 (日曜日) 午後 11時35分
>55
スゲー
無駄な計算というのは、分針ー分針も計算してしまっていることだと思いますが、
短い=シンプル
誰も思いつかなかった
ということで、手法としても素晴らしいと思います
投稿情報: ni | 2018年4 月 9日 (月曜日) 午前 12時25分
55
{=CHAR(88-9*OR((INT(B3*{5;0}+C3/{12;1})-C3:D3)^2=900))}
なんか、、、スッキリして、、、見える。
すごいなーーー
投稿情報: jyo3 | 2018年4 月 9日 (月曜日) 午後 04時04分
>ところで、時計シリーズの問題一題出来ました。
わたしも、、、1こ
送ったけど、、、、、、
場合によっては、、、あと、、2,3個・・・できます。
だが、、、、、、
類似・・・・・で、、、、
あれは、、、つぶれるかも、、、、
も、、、ある、、、
投稿情報: jyo3 | 2018年4 月 9日 (月曜日) 午後 09時48分