« 第114回 出られますか? | メイン | 第115回 数値区切り »

2012年2 月 4日 (土曜日)

コメント

りす

短いのが書き込まれない内に…
最初99で、一週間何もできず、さっきちょっとやって短くしました。
83=IF(OR(B5&D7>"",(C6>"")*(B6&B7&C7>"")*(C5&D5&D6>""),C5&B6="**",D6&C7="**"),"×","○")
チェック通過済

くまぷー

>最初99で、一週間何もできず

結局、99でした(^^ゞ

=IF((B5&D7="")*OR(C5&D5&D6="",B6&B7&C7="",C5&C6&D6="",B6&C6&C7="",C5&C6&C7="",B6&C6&D6=""),"○","×")

む印

基本的な考え方は同じでした。

65{=IF(OR(B5&D7>"",C5=B6,D6=C7,C6&0&B6&B7&C7="*0*"&B5:D7),"×","○")}

先ほどちょっと思いついて一文字ダイエット
64=IF(OR(B5&D7>"",C5=B6,C7=D6,C6&LEN(B6&B7&C7)="*"&{1,2}),"×","○")

ni

77その1
'{=IF(OR(SUM({1;8;64}*(B5:D7="")*{1,2,4})={295,457,409,307,403,313}),"○","×")}

77その2
{=IF(OR(SUM((B5:D7="")*{0,1,64;4,8,16;32,2,0})={11,14,28,38,25,81}),"○","×")}

76
{=IF(MOD(20196,SUM((B5:D7="*")*{0,1,2;4,8,16;32,64,0}))+LEN(B5&D7),"x","O")}

69
{=IF(MOD(20196,SUM((B5:D7="*")*{102,1,2;4,8,16;32,64,102})),"×","○")}

ni

そうか、>0でいいのか。
だったらもう2文字減りますね。

y sakuda

うーーん、niさんのがかろうじて私のに近いですが、69のは理屈と発想が良くわからにですね。
りすさん、くまぷーさん、む印さんのはそういう方向まったく考えなかったとしか言いようがないです。
いろんな手があるもんですねーー

ni

わたしの69文字は76文字の変形です。
2のべき乗で数値化して、答えとなるパターンのLCMのMODで0になるものを判定なのですが、B5とD7の判定がうまくいかず、LENでつくろったのが76文字。
力ずくでB5,D7の数値を決めてMODで0になるのを探した結果が69文字です。

からくち

あれ~~~、、、
その後の扱い方は別として、誰かしら
*10^{8,7,6;5,4,3;2,1,0}
使っていると思ったけど、、、

では、取り敢えず、、、
{=TEXT(SUBSTITUTE(SUM((B5:D7="")*10^{8,7,6;5,4,3;2,1,0}),"001",)-111,"×;;○")}

y sakuda

Substituteは最初使ってましたが、100をはるかに超えました。からくちさんの77は長くなりそうなものいっぱい使ってこの長さってのはごまかされてるような気分^^;

min

携帯からなので詳細はよく見ないとわかりませんが
73{=IF(OR(SUM((B5:D7=0)*{4,3,2}^{1;3;4})={131;119;33;58;421;192}),"○","×")}
みたいなものも作っていました。

このパターンは限界がありそうなので途中でやめてしまいました。

今回の問題は必ず*が4個なので左上と右下は参照しないでもすみました。

y sakuda

minさんの↓も考え無かった
>*{4,3,2}^{1;3;4})

いろいろ出てくる度に出題者の発想の貧困が明らかにw

min

72{=IF(B5&D7〉""〈OR(C5&D5&D6="",B6&B7&C7="",AND(C5:D6&B6:C7="*")),"○","×")}

こんなのも結構面白いです。

min

65{=IF(OR(C5:D6=0)*OR(B6:C7=0)*OR(C5:D6&B6:C7〈〉"*"&B5&D7),"×","○")}
61{=IF(AND(IF(D5=0,,C5:D6)&IF(B7=0,,B6:C7)="*"&B5&D7),"○","×")}

左上と右下を参照しないやつ
50{=IF(OR(IF(D5=0,,C5:D6)=IF(B7=0,,B6:C7)),"×","○")}
48{=IF(OR(IF(D5〉0,C5:D6)=IF(B7〉0,B6:C7)),"×","○")}


〉は半角に直してくださいm(__)m

y sakuda

minさんの凄いとしかコメントしようがないですねーー
ところで、72が良くわかりません。
72{=IF(B5&D7〉""〈OR(
のところがおかしいと思いますが、全体像がつかめてないので修正できないです。

jyo-3

あ・・・・眠ってしまった。・・・・
・・・・・・・・・・・・
みなさんの、、思考の途中・・・で、オワリ。
む印さんに近かったが、、、短く出来ませんでした。

何も出さないのもなんですから、・・・
ただのお遊び
charだけでのお遊び・・・・

=CHAR(((B5&D7&C6="")*(C5<>B6)*(D6<>C7)+(C5&D5&D6&C6>"***")+(B6&C6&C7&B7>"***"))*28+8543)


min

はて?
チェックが通らないのでしょうか?


短くと思ったら考え方を単純にするように考えます。

いい問題でしたね〜

りす

minさんの72も48もチェック通りましたが、不思議な式です。
そして解読不能です。解説希望です。

min

携帯からなので解説はきついです。
sakudaさんあたりにお願いできませんか?

明日で良ければ解説しますけど…

y sakuda

>チェックが通らないのでしょうか?

式の >””< の部分がおかしいのでは?ということです。
りすさん、72もチェック通ったとおっしゃってるから私が分かってないだけ?


>sakudaさんあたりにお願いできませんか?
分からないもの解説しようがないw

りす

> 式の >””< の部分がおかしいのでは?ということです。

なぜか、これで通ります。
明日で良いので、是非、解説お願いします。

min

ては明日の夜にでも
その間にどなたかが解説してくれればそれもあり

sakudaさん
〈と
〉は
半角記号に直してもだめですか?

y sakuda

>半角記号に直してもだめですか?
失礼、さっきはやり損ねてたみたいです。

見た目異様ですが↓の意味見たいですね
=IF((B5&D7>"") まあ、確かに順番間違えなければ良いわけですが、普通論理値の大小比較なんてのは考えないw
まいりました。

y sakuda

やり損ねたので再掲します。
{=IF((B5&D7>"")<OR(C5&D5&D6="",B6&B7&C7="",AND(C5:D6&B6:C7="*")),"○","×")}

からくち

皆さんの短縮、、、凄ですね

文字数を問わなければ、こん様な組み立て方が好みですが・・・
{=TEXT(MOD(40392,BIN2DEC(SUM(LEN(B5:D7)*10^{8,7,6;5,4,3;2,1,0})))+LEN(B5&D7),"×;;○")}

この式に40392( LCM )を使ってます

y sakuda

40392はそういう意味ですか。
niさんの20196と同じ発想みたいですねーー

りす

論理値の大小比較なんですね?
さらに、括弧省略?

y sakuda

>論理値の大小比較なんですね?
言われて見れば式ですから、括弧省略しても問題ないし、論理値の大小比較も問題ないでしょうが・・・・普通そんなこと考えない^^;

この問題出題者としては9割方滑っちゃうとおもってたんですが、思いのほか好評でしたね^^
ただ・・・・例によって出題者完敗の巻でしたw

ジョー3

>左上と右下を参照しないやつ
私も少し頑張ったが,,駄目だった。
ありそうでなかった。・・・いい手、、
48、50は・・・・むむーーー、、すぐにはぴんとこない。

ジョー3

>すぐにはぴんとこない。
*を並べてみて・・・・
ようやく48が分かった。。。
そかそか、、、その規則性は、、、
お風呂のタイルとかが・・・・よさそう、、、、
・・・・・・・・・・・・
なんか、似たこと、あったなーーー。・・・・
・・・・・・・・・・
忘れたーーーー、、、けど、、

min

>論理値の大小比較なんですね
一応約束ですので、、
もうすでにおわかりとおもいますが、解説してみます。
=TRUE<TRUEの結果はFALSE
=TRUE<FALSEの結果はFALSE

=FALSE<TRUEの結果はTRUE
=FALSE<FALSEの結果はFALSE
です。
つまり、
式の左辺がTRUEの時は、右辺がTRUEでもFALSEでも結果はFALSE
式の左辺がFALSEの時は、右辺がTRUEであればそのままTRUE、FALSEであればそのままFALSE
となります。
したがって、
{=IF(B5&D7>""<OR(C5&D5&D6="",B6&B7&C7="",AND(C5:D6&B6:C7="*")),"○","×")}
は右上のセルと左上のセルをつなげたものが空白でなかったら式の結果は必ずFALSEになります。
なお、「B5&D7>""<OR(・・・」は「(B5&D7>"")<OR(・・・」でも同じですが、
左側から計算をしますので、カッコは不要となります。
ちょっと適当ですが、この程度で勘弁してください。

蛇足ですが、エクセルのワークシート上では
TRUE<FALSEはFALSEとなりますが、
VB(VBA)では
TRUE<FALSEはTRUE
と逆の結果になりますので注意が必要です。

何の飾り気もないコードですが、、ご参考まで
Sub test()
Dim i
i = True < False
MsgBox i
End Sub

Sub test2()
Dim i As Integer
i = True < False
MsgBox i
End Sub

min

50{=IF(OR(IF(D5=0,,C5:D6)=IF(B7=0,,B6:C7)),"×","○")}
についてもみなさんおわかりとおもいますが、
昼寝したら寝れなくなったので、一応解説します。

今回の問題は*が必ず4個
また、右上左下は必ず空いている必要があります。
したがって、下の図の■を除いた部分に、*を通れるように4個配置されていればよいということになります。
_BCD
5■□□
6□□□
7□□■
通れるパタンのうち4つのパタンは、必ず左下(B7)と右上(D5)が*であり、かつ
AND(C5:D6<> B6:C7)=TRUEの条件が成り立ちます。
逆の書き方をするとOR(C5:D6=B6:C7)=FALSEです。
残りの2つのパタンのうちの1つは
D5が空白で、B6:C7はすべて空白じゃないという条件が成り立ち、式に書くと
OR(IF(D5=0,, C5:D6)= B6:C7)=FALSEが成り立ちます。
残り1つは前の例と反対ですから、同じように
OR(C5:D6)=IF(B7=0,,B6:C7)=FALSEである必要があります。
50は上記の条件を合体したものです。

簡単ですがこんなのでご勘弁を。。

y sakuda

とにかく50アンダーには参りました・・・・・

ジョー3

暦問題で、頭を使って・・・・
今回は休めそうだったが、、、休めなかった。
・・・・・・
100ぐらいと聞いて、、、
すぐ、、、80,、、あとは、、、ゆっくり、、、との予定が、、、
・・・・・・・・・・・
次はどうだろう。

y sakuda

次は本来はジョー3の題名だけのやつでは?w

ジョー3

>次は本来はジョー3の題名だけのやつでは?w
あーーーーーーーハハ・・・・・・・
・・・・・・・・・・・・
最初考えたのは、あまりにも、簡単すぎた。
・・・で、、、いま、改作中。
でも、でも、、、簡単過ぎもたまに、、良いかなーー。

y sakuda

>簡単過ぎもたまに、、良いかなーー。
よろしいのでは?
む印さんが送っているのがどうなのかは分かりませんが、私が預けてあるのは少なくとも秒殺には絶対ならないと思う^^

ジョー3

>少なくとも秒殺には絶対ならないと思う^^
またまた、、、2W・・・・も、、、いいかも、、、
忙しい方も参加できる確率が高くなる

くまぷー

>簡単過ぎもたまに、、良いかなーー。

いいと思いますよ~
難しいのはつらいです~

>む印さんが送っているのがどうなのかは分かりませんが、

次回はむ印さんから問題です。(o^^o)

y sakuda

>次回はむ印さんから問題です。(o^^o)
うれしいです。私の問題が二回続くと私としてはちっとも面白くないw

む印

minさんの48
やっと拝見できました。

一目見てなんとか理解は出来ましたが、
こんなスパイラルな式を組み立てるには
私のように二次元的発想では到底無理ですねぇ~、、

これが閃いたときはさぞかし気持ちよかったことでしょう^^


>次回はむ印さんから問題です。(o^^o)
おっ、早くも使って貰えるんですかぁ~
最近はなかなか顔を出せないことが多いですが
皆様、よろしくお願いします。

りす

minさん、解説ありがとうございます。
なんとなく理解できました。
真似はできませんw

min

46{=IF(OR(D5>C5:D6=(B7>B6:C7=(D5=B7))),"×","○")}
絶対に短くする手があるはずと思っていましたが、
何とか短くする手が見つかりました。
たった2文字減らすのに1週間かかってしまいました。。

これでゆっくり寝れます。

y sakuda

46??
物凄いとしか言いようがないです^^;

コメントの確認

コメントのプレビュー

プレビュー中です。コメントはまだ投稿されていません。

処理中...
コメントを投稿できませんでした。エラー:
コメントを投稿しました。 さらにコメントを投稿する

入力された文字と数字は画像と一致していません。再度入力してください。

最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。

画像を読み取れない場合は 別の画像を表示してください。

処理中...

コメントを投稿

アカウント情報

(名前は必須です。メールアドレスは公開されません。)

2024年8 月

        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

TOP メニュー