問題はこちらを参照。
***********************************************************************************
1段階では、不可能だろうと思っていましたが、
50文字ということは、できたようですね。(^^;)(^^;)
というわけで、出題者としては、敗北宣言を出さざるを得ません。(^^)ゞ
出題者悪児の用意した解答は、次の2段階のものです。
三四郎56
=If(Max(Rows(A1:A$6)*2,Cols(A1:$F1))=6 OR Col(A1)=6,"*")
Excel59
=LEFT("*",OR(MAX(ROWS(1:$6)*2,COLUMNS(A:$F))=6,COLUMN()=6))
(悪児さんより)
**********************************************************************************
【´・ω・`】:実はこの時間(8時頃)は某所で飲んだくれているので
悪児さんの下にちょっと場所を借りてくまぷーの解答も
発表しておこう・・・・・・・・よろぴく!!
Excel60文字
=LEFT("*",MOD(INT(((ROW()-6)^4-16)*(6-COLUMN())^2/41),10)=0)
三四郎55文字(2種)
=If(Find(0,Ip(((Row(A1)-6)^4-16)*(Col(A1)-6)/7.4)),"*")
=If((16-(Row(A1)-6)^4)*Abs(Col(A1)-6) IN {0,75,80},"*")
=LEFT("*",(MAX((ROW()-6)^2,(COLUMN()-6)^2-21)=4)+(COLUMN()=6))
同じ発想の方、多いと思いますが、
62より短くなりませんでした。
長方形と、縦棒の2分が・・・悔しいです。スパッと切れなかった感じで、残念。
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 08時23分
うーーん、今回は全くダメ。
ジョー3、悪児さんのはなぜか全く頭にうかばなかったです。
最終的にはくまぷーさんと同じような路線で検討してましたが形にならない内に時間切れ・・・・
私は、最後まで長方形を一組でやるところが上手く行きませんでした。
一応一番短くなった69を出して恥をさらしときます。
=LEFT("*",OR(MOD((COLUMN()-6)^2+ROW(),33)>29,COLUMN()=6,ROW()={4,8}))
投稿情報: y sakuda | 2007年11 月10日 (土曜日) 午後 08時36分
悪児さんの解答すばらしいです。
ほかの皆さんも苦労されたあとがよく見えてすばらしいです。
私のエクセルの解答はこちらです。
文字数59=LEFT("*",LEN(MIN((9-ABS(6-ROW()))*(6-COLUMN())^2/7,25))<3)
文字数51=MID("*",LEN(ABS(6-COLUMN())*(2-ABS(6-ROW()))/5),1)
文字数50=MID("*",LEN((6-COLUMN())^2*(4-(6-ROW())^2)/25),1)
(悪児さんの解答を参考にROWSを使うと51が49文字になります)
LENを使わない方法を模索したのですがだめでした。
みているだけの人のためにも文字数51だけ簡単に説明します。
(文字数50は応用で説明が長くなるので省略)
列は真ん中がゼロとして左右に1づつ増加するように設定(両サイドは5になる)
行は、4と8行目が0になるようにして内側はプラス、外側はマイナスになるように設定
行と列を掛け算した結果を5で割ると両サイドの列は元々5の倍数なので整数になるがその他の4、8行以外のセルは端数が生じる。
両サイドの掛け算の結果を5で割ったものがプラスの場合のみ、文字数1文字となる。
結果として「*」を表示したいセルは0から9の数値となり、文字数1の場合のみ「*」を表示させるのにMIDを使っている。
y sakudaさんの式もそういう方法もあるのかと勉強になりました。
長短関係なくほかの皆さんのみたいです。
投稿情報: minmax | 2007年11 月10日 (土曜日) 午後 09時44分
三四郞です。
56文字。すぐ出来たもの。
=If(Max(Cols(A1:$F6)-6,Rows(A1:F$6)-3)*(Col(A1)-6),,"*")
=If(Min(6-Cols(A1:$F6),3-Rows(A1:F$6))*(Col(A1)-6),,"*")
52文字。48文字までぜいにく落とし。
=If(Fp((3^(5-Rows(A1:F$6))/9+4)*(Col(A1)-6)/5),,"*")
=If((3^(5-Rows(A1:F$6))/9+4)*(Col(A1)-6) MOD 5,,"*")
48文字。
=If((8/2^Rows(A1:F$6)-1)*(Col(A1)-6) MOD 5,,"*")
列方向は、中心が0。両端が5の倍数。
行方向は、4と8行が0、中心側が5の倍数以外の整数、外側が少数以下がある。
もう少し詰めていきたかったのですが、出遅れた上に体力がいまいち。
投稿情報: きっちー | 2007年11 月10日 (土曜日) 午後 10時17分
minmax さん、力作ですねーー
文字数59の
/7 と
それに続く、
,25 が、とっても、面白いです。
a5からa7と、右側の3個・・・上手です。
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 10時25分
お久しぶりです
頼まれもののクレジット集計システムを
Accessで作っていたら夢中になってしまい、今日までExcelさわってませんでした。(^_^;)
「あっ今日は解答日だ」と
夕方携帯で久しぶりに覗いたら・・・。
とんでもない文字数の話になってて
とりあえず二つだけ
62文字
=IF((COLUMN()<>6)*MAX(ABS(COLUMN()-6)-5,(ROW()-6)^2-4),"","*")
59文字は配列もので
A1:E8に
=IF((COLUMN()<>6)*({3;3;3;0;1;1;1;0}-{2,0,0,0,0})<1,"*","")
Ctrl+Shift+Enterしてから
まずK列までつぎに11行までコピペ
・・・無理やりです。
投稿情報: えくせるバカ | 2007年11 月10日 (土曜日) 午後 10時29分
わーーー、きっちーさんも、すごすぎですーー。
で、48文字を予想した人??・・・大当たりーー。
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 10時30分
えくせるバカ さん、ご苦労様ですーーー
62文字ねーー、
おなかま、おなかま、、、
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 10時32分
みなさんのうなりながら解析してます・・・
minmaxさんのは魔術的ですね。
Lenを使う手法は何度か見せてもらってますが、うまいですねーー
きっちーさんのはModの使い方がExcelと違うので理解するのに苦労しました^^;
Excelに直してみても50ですね。すごい!
Excel族のために翻訳してみました
=IF(MOD((8/2^ROWS(1:$6)-1)*(COLUMN()-6),5),"","*")
えくせるバカさんのもパーツごとの意味は分かるんですが、全体で理解しようとするとだまされたみたいな気がします^^;
投稿情報: y sakuda | 2007年11 月10日 (土曜日) 午後 10時58分
>Excel族のために翻訳してみました
>=IF(MOD((8/2^ROWS(1:$6)-1)*(COLUMN()-6),5),"","*")
sakudaさん、どうもですーー
きっちーさん、数学的ですーー
左右を5の倍数にして、あまりがゼロ、、
きっちり、うつくしいですーー
では、美しいで賞と、勝手に・・・・
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 11時10分
>minmaxさんのは・・・・
>Lenを使う手法は・・・・・うまいですねーー
苦労して出来たのなら、力作で賞!!
さらさら、出来たのなら、マジックで賞!!
悪児さん!!あなたは、、
回答もさることながら、
今回も、良い問題だったで賞!!
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 11時22分
きっちーさんのような発想は自分にはできないと思います。
エクセルに変換するため考えている間にy sakudaが翻訳してくれました。ありがとうございます。
48文字はすごいです。
投稿情報: minmax | 2007年11 月10日 (土曜日) 午後 11時29分
くまぷーさん、まだ呑んでる解!!
何のかんの言って、きっちり、エクセルも
三四郎も仕上げましたね。
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 11時30分
ジョー3さん恐れ入ります。
自分自身に賞を付けるとしたら
何となくできたんで賞です。
投稿情報: minmax | 2007年11 月10日 (土曜日) 午後 11時34分
こんばんは。
今、帰ってきました。
今回は楽できる、
と思っていたのですが・・・(^^)(^^)
まだ皆さんの解答ほとんど見ていませんが、解答者悪児の解答をアップします。
三四郎50
=If(Fp((2^(3-Rows(A1:A$6))-1)*(Col(A1)-6)/5),,"*")
三四郎47
=If(Fp((2^(3-Rows(A1:A$6))-1)*Col(AI1)/5),,"*")
Excel52
=IF(MOD((2^(3-ROWS(1:$6))-1)*(COLUMN()-6),5),"","*")
Excel51
'=IF(MOD((2^(3-ROWS(1:$6))-1)*COLUMN(AI1),5),"","*")
投稿情報: 悪児 | 2007年11 月10日 (土曜日) 午後 11時35分
sakudaさんも、すごいですーーー
あれーーー、あれーーーー
ROW()={4,8}))
これは、どのように動いてるのだろう・・・
・・・・これから、解析します・・・・
それにしても、sakudaさん、解析が早いですねーーー。
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 11時35分
まだ詳しく見ていませんが、
きっちーさんと似ているようですね。(^^)ゞ
最後に3文字一気に減らせたときは、
我ながら感動しました。(^^)(^^)
(三四郎では3文字減だけど、Excelでは、1文字減にしかならない・・・)
投稿情報: 悪児 | 2007年11 月10日 (土曜日) 午後 11時38分
まったく、皆さんの発想は凄いですね。
今回は、全然考え付きませんでした。(ーー;)
投稿情報: かず@岡山 | 2007年11 月10日 (土曜日) 午後 11時42分
sakudaさんの、
>ROW()={4,8}))
分かりましたーーー、
or( が、あるから、
4だけでなく、8にも反応してるんだった。
なんか、前、自分も真似してたのに、
混乱してました。
・・・(今度、忘れないうちに使おうっと、また)
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 11時46分
>三四郎47
どひゃーーーー、
回答者悪児!!恐るべし!!
これが出てこなければ、
48、、、、ピッタリ賞だったのにぃーー・・・
がっくり!!。
投稿情報: ジョー3 | 2007年11 月10日 (土曜日) 午後 11時51分
>Col(AI1)
今回は、そこまで詰め切れず、負けました。
ただ、悪児さんの数式は、まだ若干の余裕があります。
三四郞 45文字。
べき乗の内側を展開しました。
=If(Fp((8/2^Rows(A1:A$6)-1)*Col(AI1)/5),,"*")
どこまで行けるんでしょうね。
投稿情報: きっちー | 2007年11 月10日 (土曜日) 午後 11時55分
回答者悪児!!恐るべし!!×2
何でAI1になるんだ
よくわからん
もうちょっと見てみます。
投稿情報: minmax | 2007年11 月10日 (土曜日) 午後 11時59分
ついでに、
Excel 49文字。
=IF(MOD((8/2^ROWS(1:$6)-1)*COLUMN(AI1),5),"","*")
投稿情報: きっちー | 2007年11 月11日 (日曜日) 午前 12時03分
質問です
三四郎のFPってどんなんでしたっけ?
前どなたかがどこかで解説してたと思いましたが見つからない^^;
投稿情報: y sakuda | 2007年11 月11日 (日曜日) 午前 12時07分
>三四郎のFP
小数部分を返します。
投稿情報: 悪児 | 2007年11 月11日 (日曜日) 午前 12時09分
>ついでに、
>Excel 49文字。
きちんと、減量すると、ますます、、
美しくなってくると言うことだ。
皆さんに、感心、感心!!
投稿情報: ジョー3 | 2007年11 月11日 (日曜日) 午前 12時11分
>三四郎のFPってどんなんでしたっけ?
小数部分を抽出する関数です。
数で割って小数部分を抽出すると
MOD と同じ答えが返ってきます。
a mod b = fp(a/b)
文字数は同じですので互換関数となります。
投稿情報: きっちー | 2007年11 月11日 (日曜日) 午前 12時12分
>小数部分を抽出する関数です。
ありがとうございました。
そうですね。ExcelでもMod 1 で小数点以下が出せればと何度か思いました^^
投稿情報: y sakuda | 2007年11 月11日 (日曜日) 午前 12時17分
変なこと書きました。
Excelの関数のModは小数点以下返しますね。
返してくれないのはVBAの時でした^^;
投稿情報: y sakuda | 2007年11 月11日 (日曜日) 午前 12時22分
悪児さんには完全に参りました。
言葉もありません。
投稿情報: minmax | 2007年11 月11日 (日曜日) 午前 12時29分
みなさん、お早うございます。
みなさんの発想の豊かさに本当に
言葉を失ってしまいました。
特に・・・
>Col(AI1)
・・・とか
>2^(3-Rows(A1:A$6))-1)
・・・とか
アルコールの残っている頭には
刺激が強すぎます・・・
いやー、本当に勉強になります。
・・・今日はバドの市民大会です。
1日中、体育館にいます。
それではこれから、行って参ります。(^o^)/~~~
投稿情報: くまぷー | 2007年11 月11日 (日曜日) 午前 06時53分
>べき乗の内側を展開しました。
悪児ときっちーさんの解答は、
似ているどころか、
エンジン部分は全く同じ
だったんですね。(^^)(^^)
Cを詰めた、悪児と、
Rを詰めた、きっちーさん。
合体すると、45文字だったのか・・・(^_^)(^_^)/~
投稿情報: 悪児 | 2007年11 月11日 (日曜日) 午後 01時56分
>悪児さんには完全に参りました。
minmaxさんの、50文字宣言がなければ、悪児は文字で終わっていました。(^^)ゞ
やっぱり、競り合ってこそ、
アイデアも出てきますね。(^_^)(^_^)/~
投稿情報: 悪児 | 2007年11 月11日 (日曜日) 午後 01時58分
>今回も、良い問題だったで賞!!
色んな解き方が出ましたし、
最後で競り合いになりましたし、
結果的にとても面白い問題になりましたが、
出題時に想定していたシナリオとは、
全然違った展開になりました。(^^;)(^^;)
投稿情報: 悪児 | 2007年11 月11日 (日曜日) 午後 02時00分
>出題時に想定していたシナリオとは、
>全然違った展開になりました。(^^;)(^^;)
みなさん、本気で・・・・凄かったです。
今回は、最初のもので、半分満足で、
頑張れませんでした。
投稿情報: ジョー3 | 2007年11 月11日 (日曜日) 午後 05時19分
今日は朝8時から夕方6時まで
体育館にいました。(そんな科白が多いな・・・)
いや~、正直、疲れました・・・
さて、みなさんの超絶ウルトラC級の技を駆使した式の他に
やはり、こういう式を掲示しておかないと・・・(^。^)
三四郎82文字
=If(Col(A1) IN {1,11} AND Row(A1) IN {5,6,7} OR Row(A1) IN {4,8} OR Col(A1)=6,"*")
Excel82文字
=IF(OR(MOD(ROW(),4)=0, COLUMN()=6,AND(MOD(COLUMN(),10)=1, ABS(ROW()-6)<3)),"*","")
こういうシンプルな式もいいと思います。(^。^)
投稿情報: くまぷー | 2007年11 月11日 (日曜日) 午後 08時59分
>やはり、こういう式を掲示しておかないと・・・(^。^)
これは、シンプル部門のシンプルで賞!
投稿情報: きっちー | 2007年11 月11日 (日曜日) 午後 09時11分
>これは、シンプル部門のシンプルで賞!
ありがとうございま~す!!
投稿情報: くまぷー | 2007年11 月11日 (日曜日) 午後 09時18分
>こういうシンプルな式もいいと思います。(^。^)
(・_・)(._.)(・_・)(._.)
段階別、というのも面白いかも知れませんね。Row()とCol()を何セット使っているかで、段階を分け、その中での短さ、美しさを競う。
今回の最短は、RC1組の「1段階」
悪児の用意した三四郎56などは、
RC1組+Cの「2段階」
上のくまぷーさんのシンプル式は
RC+R+Cの「三段階」ですね。
でも、orとandを駆使したかなりハイレベルな解法だと思います。(^_^)(^_^)/~
悪児も、三段階の非常に初歩的なものを作っていますので、紹介します。
殺陣三本・横二本を書き、
上下3行ずつを消して、
最後に真ん中の縦棒を書き直しています。
三四郎72
=If((Row(A1) MOD 4*(Col(J1) MOD 5)+((6-Row(A1))^2>4))*(Col(A1)<>6),,"*")
投稿情報: 悪児 | 2007年11 月11日 (日曜日) 午後 10時40分
「「中」への道01」
をアップしました。(^^)ゞ
ぜひご覧下さい。(^_^)(^_^)/~
http://akuji.justblog.jp/blog/2007/11/01_47aa.html
投稿情報: 悪児 | 2007年11 月11日 (日曜日) 午後 10時46分
悪児さんとこさっと見てきました。
続きもすごく楽しみです。
もう一回見にいってきまーす。
投稿情報: minmax | 2007年11 月11日 (日曜日) 午後 11時16分
「「中」への道02」希望(^^)
投稿情報: くまぷー | 2007年11 月12日 (月曜日) 午前 07時57分
最近は、、、いや最初からだ^^;
思いつきがない^^;
=IF(OR(ROW()={4,8},COLUMN()=6,(COLUMN()={1,11})*(ROW()>3)*(ROW()<9)),"■","")
投稿情報: k@自転 | 2007年11 月12日 (月曜日) 午前 10時12分
おーーーーk先生!!
まってました!!!
・・OR(ROW()={4,8},COLUMN()=6・・・
これ、これ、いいなーーーまた真似します。ね、、
・・・COLUMN()={1,11})*( ・・・
おーーー2カ所もサービスね、
どなたにでも分かるような(意味がすぐ)
親切な回答、、やはり、現場で鍛えた、、
たまものですね、、あなたのファン・・・
ジョー3より。・・・・
投稿情報: ジョー3 | 2007年11 月12日 (月曜日) 午前 10時21分
「「中」への道02」
アップしました。(^_^)(^_^)/~
http://akuji.justblog.jp/blog/2007/11/02_49e9.html
投稿情報: 悪児 | 2007年11 月12日 (月曜日) 午前 11時29分
Kさん、ジョー3さん、どもです。(^^)
おいらの82文字もそうですが
見やすいのはいいですよね。
悪児さんのところの
見てきました。
あそこでうちわ話として書かれている通り
悪児さんは追加問題を出そうと考えていたのでした。
つまり、ご自分の数字が最短だと
確信していらっしゃったようで・・・
それなら、それより短いのを
作ってやろうじゃないの、として
ひねりだしたのが、くまぷーの三四郎55文字でした。
投稿情報: くまぷー | 2007年11 月12日 (月曜日) 午後 12時48分
今回アイデアがこれだけでした。
A1:K11を選択して、
=LEFT("*",{1,0,0,0,0,2,0,0,0,0,1}+{0;0;0;2;1;1;1;2;0;0;0}>1)
Ctrl+Shift+Enterで確定
{}が付いて62文字
投稿情報: kir | 2007年11 月12日 (月曜日) 午後 05時44分
配列数式による解答は
えくせるバカさんとkirさんの
お二人ですね。
えくせるバカさんのはコピーする手順に指定があり
kirさんのものは一発・・・
どちらがどうというのではなく
配列数式は不思議です(^^ゞ
投稿情報: くまぷー | 2007年11 月12日 (月曜日) 午後 06時09分
「「中」への道03」
アップしました。(^_^)(^_^)/~
http://akuji.justblog.jp/blog/2007/11/03_22f3.html
投稿情報: 悪児 | 2007年11 月12日 (月曜日) 午後 11時32分
>ひねりだしたのが、くまぷーの三四郎55文字でした。
黒魔術ですな。(^^)(^^)
正に、「ひねり出した」感じ。(^_^)(^_^)/~
投稿情報: 悪児 | 2007年11 月12日 (月曜日) 午後 11時33分
「「中」への道03」
見に行ってきました。
悪児さんが事故に・・・?
詳しくは悪児さんのとこへいってみてください。
投稿情報: minmax | 2007年11 月12日 (月曜日) 午後 11時58分
「「中」への道04」です。
http://akuji.justblog.jp/blog/2007/11/04_f525.html
どうぞ、よろしく。(^_^)(^_^)/~
投稿情報: 悪児 | 2007年11 月13日 (火曜日) 午前 04時52分
「「中」への道05」です。
http://akuji.justblog.jp/blog/2007/11/05_e61e.html
やっと、おしまい。(^^)ゞ
投稿情報: 悪児 | 2007年11 月13日 (火曜日) 午後 04時48分
悪児さん、お疲れ様でした。
あまりにも面白かったので
このシリーズ+αを
「もうひとつの表計算一筆書き」として
こちらからリンクを張ってしまいました。(^O^)
http://kumapooh2007.hp.infoseek.co.jp/
投稿情報: くまぷー | 2007年11 月13日 (火曜日) 午後 06時28分