問題はこちらを参照。
【´・ω・`】:今回の問題・・・、気がついてみれば何でもないんだけど
はじめは法則に気がつかずに苦労してしまったよ。
(●`ε´●):で、どんな法則があるんだ?
【´・ω・`】:いつもの解答はただ数式を示すのみだったのだが
今回はROMしてくれている初心者さんたちのために
ちょっと、解説を・・・。
「グルグル渦巻き」はアスタリスクのあるセルと無いセルの2種類で
描かれている。だから、もしも下図のようにアスタリスクのあるセルが1ならば
*
*
*
*
*
1のところをアスタリスクに置き換えればよい。
(●`ε´●):でも問題はこんなに単純じゃないぜ。
【´・ω・`】:うん、でもよく見てみると・・・
*
*
*
*
*
*
*
(●`ε´●):な、なるほど!F6を中心に見るとアスタリスクを表示させるべきセルは
F6の1つ隣り、3つ隣り、5つ隣り・・・奇数分だけ隣のセルか!!
【´・ω・`】:うん、これに気づけば・・・。
【解答・三四郎】
F6に・・・
=If(Max(Abs(Row(F6)-6),Abs(Col(F6)-6)) MOD 2,"*")
・・・49字
【解答・Excel】
F6に・・・
=LEFT("*",ISODD(MAX(ABS(ROW()-6),ABS(COLUMN()-6))))
・・・51字
isodd ???
そんな関数、あったっけ、あったような、
でも、ふだんつかわんから、きづかなかったなーーー
投稿情報: ジョー3 | 2007年9 月15日 (土曜日) 午後 08時08分
=IF(MOD(MAX((6-ROW())^2,(6-COLUMN())^2),2)=1,"*","")
普通の関数で、1文字負けたーーー
投稿情報: ジョー3 | 2007年9 月15日 (土曜日) 午後 08時10分
なるほど、中心からの距離の最大値で判定か。気づかなかった^^;
正攻法で枠を組み立てる方針から逃れられなくなったから、Row方向、Colum方向の式がダブって長くなっちゃったです。
一応失敗作を参考例として
=IF(((MOD(ROW(),2)>0)*(ABS(COLUMN()-6)<=ABS(ROW()-6))+((MOD(COLUMN(),2)>0)*(ABS(ROW()-6)<ABS(COLUMN()-6)))),"*","")
多少きり縮められるでしょうが115文字です。
投稿情報: y sakuda | 2007年9 月15日 (土曜日) 午後 08時10分
isodd は分析ツールを入れる必要がありますから、ジョー3のがまともです。
投稿情報: y sakuda | 2007年9 月15日 (土曜日) 午後 08時11分
でも、
=MOD(MAX((6-ROW())^2,(6-COLUMN())^2),2)
表示形式で、・・・39文字
しかし、悪児先生が、50代と、おっしゃらなければ80代だから・・・
・・・今回は、参りました。
投稿情報: ジョー3 | 2007年9 月15日 (土曜日) 午後 08時12分
ISODDはアドインの分析ツールに
ある関数ですからね。
表示形式("*";;)版は
くまぷーさんの中身と同じ
=MOD(MAX(ABS(ROW()-6),ABS(COLUMN()-6)),2)
です。
その中身を使って別のを
=CHAR(32+MOD(MAX(ABS(ROW()-6),ABS(COLUMN()-6)),2)*10)
投稿情報: えくせるバカ | 2007年9 月15日 (土曜日) 午後 08時24分
>isodd は分析ツールを入れる必要がありますから
>ISODDはアドインの分析ツールに
ある関数ですからね。
・・・・・
あらら、それも、気づかなかったバイ
投稿情報: ジョー3 | 2007年9 月15日 (土曜日) 午後 08時40分
ジョー3さん39文字とは・・・
その手もありましたよね(>_<)
投稿情報: えくせるバカ | 2007年9 月15日 (土曜日) 午後 08時42分
え~、IsOddってアドインですか~?!
Excel2007を使っていたから、標準関数だと
思っていた・・・(-_-;)
みなさん、2007じゃないんですね・・・。
ちなみに三四郎では標準です。
でも三四郎の回答例では敢えて使わずに
Modを使いました。(^^ゞ
投稿情報: くまぷー | 2007年9 月15日 (土曜日) 午後 08時57分
おー、なるほど。ジョー3さんの式の中身の
=MAX((6-ROW())^2,(6-COLUMN())^2)
は、0,1,4,9,16,25になるんですね。
やはり、いろいろな攻め手があるもんだ。(^。^)
投稿情報: くまぷー | 2007年9 月15日 (土曜日) 午後 09時13分
>正攻法で枠を組み立てる方針から・・・
くまぷーもはじめはその方式でした。
その結果が例の・・・
222文字・・・_| ̄|○
・・・でした。
投稿情報: くまぷー | 2007年9 月15日 (土曜日) 午後 09時19分
えくせるバカさんのやり方はぜんぜん思いつきませんでした。
Char(42)で直接アスタリスクを書き込むなんて・・・斬新な手ですね!
投稿情報: くまぷー | 2007年9 月15日 (土曜日) 午後 09時25分
う~ん、思考が広がりませんでした。
で・・・
=MOD(LEN(10^ABS(6-COLUMN())+10^ABS(6-ROW())),2)
書式設定は、;;"*";
投稿情報: かず | 2007年9 月15日 (土曜日) 午後 09時46分
でもなーーーー
6-???は
共通の発想ですねーーー
でも、どなたか、凄いのが、出そうな気もした。
投稿情報: ジョー3 | 2007年9 月15日 (土曜日) 午後 10時08分
最初に作ったのが51文字。
これは数値の検査だけで判定していますね。
=If(Max(Abs(Row(A1)-6),Abs(Col(A1)-6)) ANDB 1,,"*")
A1 で作って、K11 までコピペ。
修正するとくまぷーさんと全く同じでした。(^^)
判定を内側隣のセルで行うようにした正攻法が、インデックス。
=If(Index($A$1:$K$11,Ip(Col(F6)*0.8-4.8)+6,Ip(Row(F6)*0.8-4.8)+6),,"*")
F6 で作って、A1 から K11 までコピペ。
Shft+F2 を押しっぱなしにしてみると・・・・・。
F6 を削除して、"*"を入力するとこんなことも。(^^ゞ
途中で出たので、完成させてみたのが、ビット操作。
=If(Log((2^Abs(Col(F6)-6)-1 ORB 2^Abs(Row(F6)-6)-1)+1,2) MOD 2,"*")
F6 で作って、A1 から K11 までコピペ。
投稿情報: きっちー | 2007年9 月15日 (土曜日) 午後 10時10分
log とはまた・・・・・
高校時代を・・・・わすれたみたい。
投稿情報: ジョー3 | 2007年9 月15日 (土曜日) 午後 10時32分
かずさん、お仕事お疲れ様でした。
=10^ABS(6-COLUMN())+10^ABS(6-ROW())
上はかずさんの式の中身ですが
F6と他のセルの距離を数値の桁数で
表すなんて発想はどこからでてくるのでしょう?!
くまぷーには絶対に思いつかない手法です。(^。^)
投稿情報: くまぷー | 2007年9 月15日 (土曜日) 午後 10時40分
きっちーさんの・・・
=If(Index($A$1:$K$11,Ip(Col(F6)*0.8-4.8)+6,Ip(Row(F6)*0.8-4.8)+6),,"*")
・・・の式。エクセル勢にも是非見てもらいたい式です。
循環参照でアスタリスクのあるセルと無いセルが変化します。
ここに循環参照をもってくるとは?!
おー、三四郎にはAND、ORの他に
ANDB、 ORB なんて演算子があるんですね。
これを使ったふたつの式はくまぷーの
理解を超えています。コメント不能です。スミマセン(^^ゞ
投稿情報: くまぷー | 2007年9 月15日 (土曜日) 午後 10時48分
一番単純だと思っていたのが出ていないので・・・
悪児さんがおっしゃる「エンジン部分」です
=MOD(MIN(ROW(),COLUMN(),12-ROW(),12-COLUMN()),2)
投稿情報: えくせるバカ | 2007年9 月15日 (土曜日) 午後 11時26分
今帰りました。
色々ありますね。
ゆっくり見ていきます。
ところで、悪児の最少文字版、
見ていただけました?
三四郎(47文字)
=If(Max((Row(A1)-6)^2,(Col(A1)-6)^2) MOD 2,"*")
Excel(49文字)
=LEFT("*",MOD(MAX((ROW()-6)^2,(COLUMN()-6)^2),2))
「エンジン部分」は、ジョー3と
同じですね。(^_^)(^_^)/~
投稿情報: 悪児 | 2007年9 月15日 (土曜日) 午後 11時34分
>三四郎(47文字)
出来たんだ。
^2が使えるかなとちらっと思っただけでわすれてしまっていましたよ。(^^)
投稿情報: きっちー | 2007年9 月15日 (土曜日) 午後 11時56分
>悪児さんがおっしゃる「エンジン部分」です
> =MOD(MIN(ROW(),COLUMN(),12-ROW(),12-COLUMN()),2)
あ、なるほど。こういう手もありますね。
投稿情報: くまぷー | 2007年9 月16日 (日曜日) 午前 05時58分
悪児さん、お早うございます。
今回、くまぷーがかなり苦労したものを
お風呂のなかであっという間に解いてしまうのですから・・・
完全にやられた・・・という感じです。m(__)m
悪児さんブログに面白いものが並んでいますので
みなさん、是非ご覧ください。
http://akuji.justblog.jp/blog/
投稿情報: くまぷー | 2007年9 月16日 (日曜日) 午前 06時03分
きっちーさん、お早うございます。
今日はこれから、バドミントンの試合です。
帰ってから、もう一度きっちーさんの式を
考えさせて頂きま~す。(^。^)
投稿情報: くまぷー | 2007年9 月16日 (日曜日) 午前 06時05分
悪児さんの解答6でおもいついた。
出題タイトルにマッチ(?)した、グルグル渦巻き参照です。
=If(Row(F6)<6 AND Col(F6)<7,If(Min(Row(F6),Col(F6)) MOD 2,"*"),Index($A$1:P11,Row(F6),12-Col(F6))) & ""
F6 に入力して A1 から K11 までコピペ。
A1 から F5 のセルを一つづつ消すとおもしろい。(^^)
投稿情報: きっちー | 2007年9 月16日 (日曜日) 午後 03時35分
こんばんは。バドの試合から帰って来ました。
24チームを6ブロックに分けて
4チームの総当たりで各ブロックの
1位が決勝トーナメントに進めるというシステムでした。
くまぷーは2勝一敗でブロック2位だったので
決勝には進めなかったけど満足しています。
さて帰ってきてここを見るときっちーさんの
新しい投稿が!!
きっちーさん、研究熱心だな~(^。^)
見習わなくっちゃ!!
・・・といいながら、すでに酔っぱらっています。由\(@_+ ) ヒック!
投稿情報: くまぷー | 2007年9 月16日 (日曜日) 午後 10時47分