« 新・関数で出来ますか~ 第1回 祝・藤井4段28連勝 | メイン | 新・関数で出来ますか~ 第2回  »

2017年7 月 8日 (土曜日)

コメント

くまぷー

では、第一感で浮かんだ手・・・45手

{=SUM(IF(ISERR(FIND(ROW(1:7),B3)),ROW(1:7),0))}

1.まず、FINDでB3にない数字を見つける。FINDは検索文字列が
見つからない場合はエラーになるので、エラーになった時が求める答えである。
=FIND(ROW(1:7),B3)

2. エラーになる時、ならない時の判定。
=ISERR(FIND(ROW(1:7),B3))

3.If関数でエラーがでるときは求めるべき数字、そうでないときは0に変換。
=IF(ISERR(FIND(ROW(1:7),B3)),ROW(1:7),0)

4.数字が存在する場合は0、存在しない場合はその数字そのものになる。
 締めくくりに3で求めた6つの0と求めるべき数字をsumで合計。

{=SUM(IF(ISERR(FIND(ROW(1:7),B3)),ROW(1:7),0))}

・・・で上の基本式を減量した物が

{=SUM(ISERR(FIND(ROW(1:7),B3))*ROW(1:7))} 41手

からくち

くまぷーさんの考え方をもう少し進めると
エラーになるのはその数値が無いから
なら作ってしまえば、、、で
B3&1234567
とすれば、、、
つまりない数値は1番大きな値として返る
{=MAX(FIND(ROW(1:7),B3&1234567)-6)}
35文字になります

jyo3

からくちさん、、、うれしいです。
>{=MAX(FIND(ROW(1:7),B3&1234567)-6)}
私にも、そっくりさんがありました。
{=MAX(FIND(ROW(1:7),B3&1/9/9))-9}

からくち

>=7-MOD(B3+6,9)
う~~ん、、、分からない
わたしなら多分、、、1-B3と書いてしまうかも

からくち

そうか、、、1/9/9か、、、
やられた、、、

jyo3

>1-B3
そうなんです。
からくちさんが、、、

と、書いて・・・・
ようやく気付いた・・・12文字・・・が、それでした。
かなり、がっくりでした。

からくち

加藤一二三さんで、、、
123文字を挑戦、、、駄目だった
77才で77文字、、、これも駄目
悔しいので28連勝を逆に
82文字、、、出来た

{=SUM(MID(SUM(-MID(SUM(-MID((1234567-B3)&0,ROW(1:7),1))&0,{2,3},1))&0,{2,3},1)*1)}

maron

◆最初は14の5でした
14=9-MOD(B3-1,9)

◆次に、13の4です
13=MOD(10-B3,9)

◆いじくりまわして、12の3です
12=MOD(1-B3,9)

maron

◆ちなみに、28連勝にちなんでの28は、無理やりですが
28=VALUE(LEFT(10-MOD(B3,9),1))

からくち

ジョー3さん、、、
この問題はエクセル関数の勉強に非常に良い問題と思います

1234567をB3の数字を消す
これが1番の初心者的な考え方かも、、、でも
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(1234567,LEFT(B3),),MID(B3,2,1),),MID(B3,3,1),),MID(B3,4,1),),MID(B3,5,1),),RIGHT(B3),)
153文字にもなってしまう

少しスキルが上がると1~7を足し算すると28
つまり28からB3を足し算した数値をマイナスすれば良いと

そうやって考えていくと色々な考え方で出来るのが分かるようになる
関数初心者には大変良い問題と思います

先の全てを消すと言う考え方の式(153文字)も
1つ消せればその数値は5桁になる
でも消えない数値の場合は6桁のまま
となれば、、、
{=MATCH(6,LEN(SUBSTITUTE(B3,ROW(1:7),)),)}
同じSUBSTITUTEでも153文字が42文字に減る

どの式が良いか否かでは無く
好き嫌いを含めた考え方を養う良いサンプルになりますね
そう言った意味でもこの問題は傑作と思います

くまぷー

>くまぷーさんの考え方をもう少し進めると
>エラーになるのはその数値が無いから
>なら作ってしまえば、、、で
>B3&1234567
>とすれば、、、

そこまでは考えました。
1. B3は6桁だから、B3に無い数字は
B3&1234567の左から7番目以降に現れるはず。

2.よって・・・
=FIND(ROW(1:7),B3&1234567)>6が真になるはず。

3.If関数で2の式が真のときは求めるべき数字、そうでないときは0に変換。
IF(FIND(ROW(1:7),B3&1234567)>6,ROW(1:7),0)

4.締めくくりに3で求めた6つの0と求めるべき数字をsumで合計。

{=SUM(IF(FIND(ROW(1:7),B3&1234567)>6,ROW(1:7),0))}

・・・でかえって長くなって撃沈・・・(つд⊂)エーン

{=MAX(FIND(ROW(1:7),B3&1234567)-6)}

こうすれば良かったのか・・・
なるほどです。m(__)m

からくち

>77才で77文字、、、これも駄目
無理やり感もありますが、、、
77文字です
{=LEN(SUBSTITUTE(SUM(-SUBSTITUTE(1234567,MID(B3,ROW(1:6),1),)*1)+753081,0,))}

加藤一二三さんは今やテレビに引っ張りだこですね

みなさんどうしたのかな、、、
少し書き出そうか
{=SUM(4-MID(B3&0,ROW(1:7),1))}
{=RIGHT(SUM(28-MID(B3,ROW(1:6),1)))}
{=MATCH(,0/ISERR(FIND(ROW(1:7),B3)))}
=LOOKUP(,0/ISERR(FIND(ROW(1:7),B3)),ROW(1:7))

最終的には最大で153文字・38式書きました
久々にエクセルでお遊びさせて戴きました
ありがとうございます

jyo3

>13=MOD(10-B3,9)

>12=MOD(1-B3,9)

同じようですが、、わたしは、

13=MOD(-B3+1,9)

12=MOD(1-B3,9)

>{=MATCH(6,LEN(SUBSTITUTE(B3,ROW(1:7),)),)}
へーーー、、、勉強になる、、、わたし、、、

>加藤一二三さんは今やテレビに引っ張りだこですね
昔の対局者で、彼を嫌ってる方もおられたような・・・

例えば、対局者の後ろに立つので、、・・・・
お返ししたのは誰だったかなーーー

y sakuda

ちょっと前、帰ってきてやっと落ち着きました。
111111でうまく行く理由が分かんないです。後で考えて見ます。
他の方のと同じようなものですが、見た瞬間に考えたものの、最短は

{=MATCH(,0/ISERR(FIND(ROW(1:7),B3)),)}
の38
他の手法の最短も挙げておきます。
{=MATCH(,SUBSTITUTE(B3,ROW(1:7),)-B3,)}
39

一番短かったのは、
{=28+SUM(-MID(B3,ROW(1:6),1))}
の30です。

999999等を足してなんとかならないかってのは模索したんですが、そこから先全然だめでしたね^^

y sakuda

確かに、9の剰余であれば、nが1~8であれば、
n、n0、n00・・・・の剰余は同じになる。
だから、並び順がどうあろうと並び順がどうあろうと、剰余は同じになる。
https://yukicoder.me/wiki/mathematical_property
また、111111の剰余は6だから、111111ではなく、6を足しても同じ。
整数論ちゃんと知ってる人なら、
「並び順がどうあろうと並び順がどうあろうと、剰余は同じになる。」
こっちは思いついてもおかしくない。
しかし、なんで、111111足して9の剰余って発想がいきなりでてくるのか謎です。
っていうか、ジョー3数論しってるとは思えないので、頭の構造どうなってるんかってなもんですけどねw

私はジョー3の出題者解を見てやっと、位置に関係なく9の剰余がその6ケタの数字の合計の剰余となることが分かった。
高校時代か大学時代にグラフ理論とか整数論とか数学の初歩を分かり易く(比較の問題ですけど)解説したシリーズ何冊か持ってたんですが、整数論の奴だけなくしちゃったらしく見つからなかった。
以前の関数でできますかでも数論に関係する問題が出た時この本がないことを悔やんだおぼえがあります。
もっとも今回は剰余を使うってとこまで発想がいきませんでした^^;
今回はスタート時点で全面敗北です^^

しかし、まだちゃんと見てませんがからくちさんの長いの面白いですねーー
明日じっくり眺めます。

jyo3

>ジョー3数論しってるとは思えないので、
・・・知りません、、、
算数だけ好きでしたけど・・・

私の理屈(算数の)

123456789は9の倍数(算数で習った記憶)・・・
だけど、これでは、、、見え見え
234567も9の倍数・・・
234567=123456+111111 

123456なら・・・見えにくい法則
で、問題、、、
1234567  から 7が消えると 9で割ると 0 あまり
1234567  から 6が消えると 9で割ると 1 あまり・・・・

19文字作成・・・=7-MOD(B3+111111,9)
あとで、ん???
もしかして、、
123456+6      も9の倍数? ・・・14文字作成

jyo3

あああ、、、文章の中に
111111が、2か所漏れてたようです。・・・・
これ修正の仕方、、、わからない。・・・・
・・・・まあ、、いいか、、、

からくち

2007以降なら
{=MATCH(,IFERROR(FIND(ROW(1:7),B3),),)}
2003以前なら
{=MATCH(1,ISERR(FIND(ROW(1:7),B3))*1,)}
同じような関数で、、、

多分長くなるのが分かっているので誰も書かないであろう式
=MATCH(,FREQUENCY(MID(B3,ROW(1:6),1)*1,ROW(1:6)),)
{=MODE(LEN(RIGHT(SUM(10^MID(B$3,ROW(1:6),1)),ROW(2:7))*1),7)}

こうして見ると良い式と言うのはどう言う式の事を言うのだろう
より短い式
より負担の少ない式
より分かり易い式
などなど
わたしには分からない、、、

お遊びなので、、、好みで書いてしまう

jyo3

>お遊びなので、、、好みで書いてしまう
それが、思いがけない式だと、、、へーーーと、、、面白い。
だから、ありがたい・

jyo3

あと、関連する、、、考えた算数・・・
10            9 1
100        90 9 1
1000   900 90 9 1

20
200
2000
は、それに、、2をかけた数

だから、、
123456
346521
9で割った余りは、、、同じ・・・と、すべて算数。の推論、、

maron

◆「数字根」というそうですね

からくち

>{=SUM(MID(SUM(-MID(SUM(-MID((1234567-B3)&0,ROW(1:7),1))&0,{2,3},1))&0,{2,3},1)*1)}

これ数字根です

からくち

わたし的に好みの式です

{=FIND(0,SUM(10^(7-MID(B3,ROW(1:6),1))))}

くまぷー

数字根ですか・・・
調べてみました。
勉強になりますね~(^◇^)

jyo3

>{=FIND(0,SUM(10^(7-MID(B3,ROW(1:6),1))))}
面白いです・・・・

で、92 と 6 を 行ってくる・・・・

???

からくち

>面白いです・・・・
ありがとうございます

これは最初何とか2進数を使えないかなと書いた式
{=FIND(MOD(BIN2DEC(SUM(10^MID(B3,ROW(1:6),1))),9),9734610)}
これがスタート
しかし余りに無駄が多い様に思え2進数を諦め書いた式
{=FIND(MOD(SUM(10^MID(B3,ROW(1:6),1)),7),9146520)}
でもわざわざMODなど使う必要も無いと書いた式がその式です

1つ何かを思い取り敢えずは書いてみる
するとそこから色々見えて来てまた書いてみる
その繰り返しが出来る、、、良い問題の証ですね

今回もわたしは完全に負けでした
やっぱより短い式、、、苦手です

からくち

端からより短くと言う考えが全く無い
>12=MOD(1-B3,9)
1~7の値を得るのに9を使う
この発想がわたしには出て来ない

いや、、、発想以前に考えていない証拠
よく考えれば9を使う事が分かる筈なのに、、、
閃きだけではやはりこれは出ない

ジョー3さん、、、凄いです

からくち

ジョー3さん、、、教えてください
問題に関係無くごめんなさい

詰将棋の事ですが
仮に3手詰の問題があったとして
これを5手で詰ませた場合は
詰将棋としての判断はどうなるのでしょうか
あくまで詰ませたので、、、正解
手数がかかり過ぎ故、、、不正解

からくち

>仮に3手詰の問題があったとして
書き間違えでした

正しくは、、、

仮に3手で詰む問題だったとして
これを5手で詰ませた場合は
詰将棋としての判断はどうなるのでしょうか
あくまで詰ませたので、、、正解
手数がかかり過ぎ故、、、不正解

jyo3

92歳&私&6歳で、出かけて、、、、今帰りました。

>仮に3手で詰む問題だったとして

3手で詰む問題
3手で詰めると正解
別の手段で、5手でも積むと・・・

詰めたほうは、正解
作ったほうは、良くない作品=別詰めがあるから、、と、なると、思います。

・・・
脱線
97手で詰むと、思って作った時、、、
合いごまで・・・・実はその手段では、詰まないことが分かり・・・
・・・・不詰み・・・と、思われた作品で・・・

その後、別手段で、、101手で、詰む手段が発見されると、、、
面白い。

からくち

>作ったほうは、良くない作品=別詰めがあるから
ありがとうございます
将皇と言う無料のソフトで遊んでみました
わたしは動かし方を知っている程度で実際にやったことがありません
そこで詰将棋があったのでそれを弄っていたら、、、
それでお聞きした次第です

jyo3

見てみました。
このソフトの、、入門レベルは、、、

答えが、いっぱい、、、
あります。

持ち駒がなくても詰むのに・・・

角銀?があったりです。

あくまでも、詰めの練習で、、、

本当の意味での詰将棋でないです。

y sakuda

まあ、どうでも良いですけど、からくちさんよういろいろ思いつきますね。
中には私もイメージしたけど長いのが分かってたんでためしてもいないものもありますが、(例えばLookupのやつ)
>{=FIND(0,SUM(10^(7-MID(B3,ROW(1:6),1))))}
これなんかは全然イメージもしなかったです。

y sakuda

Frequencyは使えそうな気がして考えましたが、まとまらなかった・・・・
MODE?頭をカスメモしなかった・・・・・

y sakuda

数字根ってのは言葉すら知らんかった^^;

からくち

いま帰って来ました

>本当の意味での詰将棋でないです
ですよね、、、わたしでも易しく感じます

>いろいろ思いつきますね
いえいえ、、、
今回も本当に完敗です
どうしてか考えたら、、、分かりました
本当の理由
歳を理由にしたくないけど、、、考えが出ない
言い訳
>藤井4段28連勝の時作りましたので28連勝記念。
これに負けました
何故29連勝記念では駄目なのか
それは28でなければならないから
1~7を足し算すれば28
>つまり28からB3を足し算した数値をマイナスすれば良い
それを書いたら、、、30故3と書いた
そしたら、、、ジョー3さんも3と、、、
それでお終い、、、後はお遊び
まさか12の3とは思いもしなかったので
その時点で思考停止
でもそのお陰で沢山お遊びさせて戴けました
ありがたい事です

min

いまさらですが、pcで関数なしやってみました。

書き流しですが、
39
=10-(B3-(("\"&B3/9+10^14-0.5)-10^14)*9)
でした。。

maron

>関数なしやってみました
◆挑戦しましたが、できませんでした
◆すごいの一言!

jyo3

>◆すごいの一言!
ほんとですねーーー
私は途中で、あきらめました。

¥  とか
0.5 とか
10^14 とか

エクセル君と、、、
すごく仲良くなってる感じですねーーー
参りました。

刺激されて少し、、、
頑張ってみました。
ちょっと、邪道っぽいですが、、、

=9-MID((B3-1)/9,7,1)

jyo3

で、、これをもとに
・・・・・
なんとか、関数なしでできないか・・・・
???
で、あきらめました。

jyo3

みなさん、有難うございました。

今回も、思いがけない展開が多くて、

ゆっくりリラックスしながらの気分が、、
すぐ、緊張モードになってしまいました

次回は、息抜きになれば、、、とは、思ってます。

y sakuda

やっぱり、minさんも面白いの作るな^^
しかし、関数なしでこの長さとは・・・・

くまぷー

minさん、凄すぎ!!

>=10-(B3-(("\"&B3/9+10^14-0.5)-10^14)*9)

私には理解不能です。
特に "\"・・・
VB とかなら\演算子ってのがあるけど・・・

ほんとにPCなしでこんな式ができてしまうのだろうか?!
プロ棋士の目クラ将棋のようです。

jyo3

\ は ¥  ???

コメントの確認

コメントのプレビュー

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

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

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

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

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

処理中...

コメントを投稿

アカウント情報

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

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 メニュー