/////////////////////////////////////////////////////////
//誰でもわかる良い子の解答例 (by くまぷー)
★考え方
上でジョー3さんが述べているように・・・
1+2+3+4+5+6+7=28
・・・なので求める数はB3の数字(6桁)の各桁の数の和を求めて28から引けばよい。
1. Mid関数を使って各桁の和を求める。
=MID(B3,1,1)+MID(B3,2,1)+MID(B3,3,1)+MID(B3,4,1)+MID(B3,5,1)+MID(B3,6,1)
2. 28から1.で求めた数を減じる。
=28-MID(B3,1,1)-MID(B3,2,1)-MID(B3,3,1)-MID(B3,4,1)-MID(B3,5,1)-MID(B3,6,1)
上式を配列数式で処理すると下の
sakudaさんの式になります。
{=28+SUM(-MID(B3,ROW(1:6),1))}
では、第一感で浮かんだ手・・・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手
投稿情報: くまぷー | 2017年7 月 8日 (土曜日) 午前 08時27分
くまぷーさんの考え方をもう少し進めると
エラーになるのはその数値が無いから
なら作ってしまえば、、、で
B3&1234567
とすれば、、、
つまりない数値は1番大きな値として返る
{=MAX(FIND(ROW(1:7),B3&1234567)-6)}
35文字になります
投稿情報: からくち | 2017年7 月 8日 (土曜日) 午前 08時44分
からくちさん、、、うれしいです。
>{=MAX(FIND(ROW(1:7),B3&1234567)-6)}
私にも、そっくりさんがありました。
{=MAX(FIND(ROW(1:7),B3&1/9/9))-9}
投稿情報: jyo3 | 2017年7 月 8日 (土曜日) 午前 08時58分
>=7-MOD(B3+6,9)
う~~ん、、、分からない
わたしなら多分、、、1-B3と書いてしまうかも
投稿情報: からくち | 2017年7 月 8日 (土曜日) 午前 09時02分
そうか、、、1/9/9か、、、
やられた、、、
投稿情報: からくち | 2017年7 月 8日 (土曜日) 午前 09時08分
>1-B3
そうなんです。
からくちさんが、、、
3
と、書いて・・・・
ようやく気付いた・・・12文字・・・が、それでした。
かなり、がっくりでした。
投稿情報: jyo3 | 2017年7 月 8日 (土曜日) 午前 09時09分
加藤一二三さんで、、、
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)}
投稿情報: からくち | 2017年7 月 8日 (土曜日) 午前 09時32分
◆最初は14の5でした
14=9-MOD(B3-1,9)
◆次に、13の4です
13=MOD(10-B3,9)
◆いじくりまわして、12の3です
12=MOD(1-B3,9)
投稿情報: maron | 2017年7 月 8日 (土曜日) 午前 10時19分
◆ちなみに、28連勝にちなんでの28は、無理やりですが
28=VALUE(LEFT(10-MOD(B3,9),1))
投稿情報: maron | 2017年7 月 8日 (土曜日) 午前 10時31分
ジョー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文字に減る
どの式が良いか否かでは無く
好き嫌いを含めた考え方を養う良いサンプルになりますね
そう言った意味でもこの問題は傑作と思います
投稿情報: からくち | 2017年7 月 8日 (土曜日) 午前 10時40分
>くまぷーさんの考え方をもう少し進めると
>エラーになるのはその数値が無いから
>なら作ってしまえば、、、で
>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
投稿情報: くまぷー | 2017年7 月 8日 (土曜日) 午後 06時23分
>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式書きました
久々にエクセルでお遊びさせて戴きました
ありがとうございます
投稿情報: からくち | 2017年7 月 8日 (土曜日) 午後 06時36分
>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),)),)}
へーーー、、、勉強になる、、、わたし、、、
>加藤一二三さんは今やテレビに引っ張りだこですね
昔の対局者で、彼を嫌ってる方もおられたような・・・
例えば、対局者の後ろに立つので、、・・・・
お返ししたのは誰だったかなーーー
投稿情報: jyo3 | 2017年7 月 8日 (土曜日) 午後 09時06分
ちょっと前、帰ってきてやっと落ち着きました。
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 | 2017年7 月 9日 (日曜日) 午前 01時05分
確かに、9の剰余であれば、nが1~8であれば、
n、n0、n00・・・・の剰余は同じになる。
だから、並び順がどうあろうと並び順がどうあろうと、剰余は同じになる。
https://yukicoder.me/wiki/mathematical_property
また、111111の剰余は6だから、111111ではなく、6を足しても同じ。
整数論ちゃんと知ってる人なら、
「並び順がどうあろうと並び順がどうあろうと、剰余は同じになる。」
こっちは思いついてもおかしくない。
しかし、なんで、111111足して9の剰余って発想がいきなりでてくるのか謎です。
っていうか、ジョー3数論しってるとは思えないので、頭の構造どうなってるんかってなもんですけどねw
私はジョー3の出題者解を見てやっと、位置に関係なく9の剰余がその6ケタの数字の合計の剰余となることが分かった。
高校時代か大学時代にグラフ理論とか整数論とか数学の初歩を分かり易く(比較の問題ですけど)解説したシリーズ何冊か持ってたんですが、整数論の奴だけなくしちゃったらしく見つからなかった。
以前の関数でできますかでも数論に関係する問題が出た時この本がないことを悔やんだおぼえがあります。
もっとも今回は剰余を使うってとこまで発想がいきませんでした^^;
今回はスタート時点で全面敗北です^^
しかし、まだちゃんと見てませんがからくちさんの長いの面白いですねーー
明日じっくり眺めます。
投稿情報: y sakuda | 2017年7 月 9日 (日曜日) 午前 02時27分
>ジョー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 | 2017年7 月 9日 (日曜日) 午前 05時48分
あああ、、、文章の中に
111111が、2か所漏れてたようです。・・・・
これ修正の仕方、、、わからない。・・・・
・・・・まあ、、いいか、、、
投稿情報: jyo3 | 2017年7 月 9日 (日曜日) 午前 05時53分
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)}
こうして見ると良い式と言うのはどう言う式の事を言うのだろう
より短い式
より負担の少ない式
より分かり易い式
などなど
わたしには分からない、、、
お遊びなので、、、好みで書いてしまう
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午前 05時56分
>お遊びなので、、、好みで書いてしまう
それが、思いがけない式だと、、、へーーーと、、、面白い。
だから、ありがたい・
投稿情報: jyo3 | 2017年7 月 9日 (日曜日) 午前 06時18分
あと、関連する、、、考えた算数・・・
10 9 1
100 90 9 1
1000 900 90 9 1
20
200
2000
は、それに、、2をかけた数
だから、、
123456
346521
9で割った余りは、、、同じ・・・と、すべて算数。の推論、、
投稿情報: jyo3 | 2017年7 月 9日 (日曜日) 午前 06時32分
◆「数字根」というそうですね
投稿情報: maron | 2017年7 月 9日 (日曜日) 午前 07時01分
>{=SUM(MID(SUM(-MID(SUM(-MID((1234567-B3)&0,ROW(1:7),1))&0,{2,3},1))&0,{2,3},1)*1)}
これ数字根です
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午前 07時39分
わたし的に好みの式です
{=FIND(0,SUM(10^(7-MID(B3,ROW(1:6),1))))}
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午前 07時41分
数字根ですか・・・
調べてみました。
勉強になりますね~(^◇^)
投稿情報: くまぷー | 2017年7 月 9日 (日曜日) 午前 07時54分
>{=FIND(0,SUM(10^(7-MID(B3,ROW(1:6),1))))}
面白いです・・・・
で、92 と 6 を 行ってくる・・・・
???
投稿情報: jyo3 | 2017年7 月 9日 (日曜日) 午前 08時01分
>面白いです・・・・
ありがとうございます
これは最初何とか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つ何かを思い取り敢えずは書いてみる
するとそこから色々見えて来てまた書いてみる
その繰り返しが出来る、、、良い問題の証ですね
今回もわたしは完全に負けでした
やっぱより短い式、、、苦手です
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午前 08時40分
端からより短くと言う考えが全く無い
>12=MOD(1-B3,9)
1~7の値を得るのに9を使う
この発想がわたしには出て来ない
いや、、、発想以前に考えていない証拠
よく考えれば9を使う事が分かる筈なのに、、、
閃きだけではやはりこれは出ない
ジョー3さん、、、凄いです
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午前 09時02分
ジョー3さん、、、教えてください
問題に関係無くごめんなさい
詰将棋の事ですが
仮に3手詰の問題があったとして
これを5手で詰ませた場合は
詰将棋としての判断はどうなるのでしょうか
あくまで詰ませたので、、、正解
手数がかかり過ぎ故、、、不正解
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午前 09時53分
>仮に3手詰の問題があったとして
書き間違えでした
正しくは、、、
仮に3手で詰む問題だったとして
これを5手で詰ませた場合は
詰将棋としての判断はどうなるのでしょうか
あくまで詰ませたので、、、正解
手数がかかり過ぎ故、、、不正解
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午前 11時42分
92歳&私&6歳で、出かけて、、、、今帰りました。
>仮に3手で詰む問題だったとして
3手で詰む問題
3手で詰めると正解
別の手段で、5手でも積むと・・・
詰めたほうは、正解
作ったほうは、良くない作品=別詰めがあるから、、と、なると、思います。
・・・
脱線
97手で詰むと、思って作った時、、、
合いごまで・・・・実はその手段では、詰まないことが分かり・・・
・・・・不詰み・・・と、思われた作品で・・・
その後、別手段で、、101手で、詰む手段が発見されると、、、
面白い。
投稿情報: jyo3 | 2017年7 月 9日 (日曜日) 午後 01時53分
>作ったほうは、良くない作品=別詰めがあるから
ありがとうございます
将皇と言う無料のソフトで遊んでみました
わたしは動かし方を知っている程度で実際にやったことがありません
そこで詰将棋があったのでそれを弄っていたら、、、
それでお聞きした次第です
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午後 04時02分
見てみました。
このソフトの、、入門レベルは、、、
答えが、いっぱい、、、
あります。
持ち駒がなくても詰むのに・・・
角銀?があったりです。
あくまでも、詰めの練習で、、、
本当の意味での詰将棋でないです。
投稿情報: jyo3 | 2017年7 月 9日 (日曜日) 午後 04時47分
まあ、どうでも良いですけど、からくちさんよういろいろ思いつきますね。
中には私もイメージしたけど長いのが分かってたんでためしてもいないものもありますが、(例えばLookupのやつ)
>{=FIND(0,SUM(10^(7-MID(B3,ROW(1:6),1))))}
これなんかは全然イメージもしなかったです。
投稿情報: y sakuda | 2017年7 月 9日 (日曜日) 午後 09時50分
Frequencyは使えそうな気がして考えましたが、まとまらなかった・・・・
MODE?頭をカスメモしなかった・・・・・
投稿情報: y sakuda | 2017年7 月 9日 (日曜日) 午後 09時54分
数字根ってのは言葉すら知らんかった^^;
投稿情報: y sakuda | 2017年7 月 9日 (日曜日) 午後 11時08分
いま帰って来ました
>本当の意味での詰将棋でないです
ですよね、、、わたしでも易しく感じます
>いろいろ思いつきますね
いえいえ、、、
今回も本当に完敗です
どうしてか考えたら、、、分かりました
本当の理由
歳を理由にしたくないけど、、、考えが出ない
言い訳
>藤井4段28連勝の時作りましたので28連勝記念。
これに負けました
何故29連勝記念では駄目なのか
それは28でなければならないから
1~7を足し算すれば28
>つまり28からB3を足し算した数値をマイナスすれば良い
それを書いたら、、、30故3と書いた
そしたら、、、ジョー3さんも3と、、、
それでお終い、、、後はお遊び
まさか12の3とは思いもしなかったので
その時点で思考停止
でもそのお陰で沢山お遊びさせて戴けました
ありがたい事です
投稿情報: からくち | 2017年7 月 9日 (日曜日) 午後 11時08分
いまさらですが、pcで関数なしやってみました。
書き流しですが、
39
=10-(B3-(("\"&B3/9+10^14-0.5)-10^14)*9)
でした。。
投稿情報: min | 2017年7 月 9日 (日曜日) 午後 11時18分
>関数なしやってみました
◆挑戦しましたが、できませんでした
◆すごいの一言!
投稿情報: maron | 2017年7 月10日 (月曜日) 午前 12時04分
>◆すごいの一言!
ほんとですねーーー
私は途中で、あきらめました。
¥ とか
0.5 とか
10^14 とか
エクセル君と、、、
すごく仲良くなってる感じですねーーー
参りました。
刺激されて少し、、、
頑張ってみました。
ちょっと、邪道っぽいですが、、、
=9-MID((B3-1)/9,7,1)
投稿情報: jyo3 | 2017年7 月10日 (月曜日) 午前 09時22分
で、、これをもとに
・・・・・
なんとか、関数なしでできないか・・・・
???
で、あきらめました。
投稿情報: jyo3 | 2017年7 月10日 (月曜日) 午前 09時27分
みなさん、有難うございました。
今回も、思いがけない展開が多くて、
ゆっくりリラックスしながらの気分が、、
すぐ、緊張モードになってしまいました
次回は、息抜きになれば、、、とは、思ってます。
投稿情報: jyo3 | 2017年7 月10日 (月曜日) 午前 09時49分
やっぱり、minさんも面白いの作るな^^
しかし、関数なしでこの長さとは・・・・
投稿情報: y sakuda | 2017年7 月10日 (月曜日) 午前 10時46分
minさん、凄すぎ!!
>=10-(B3-(("\"&B3/9+10^14-0.5)-10^14)*9)
私には理解不能です。
特に "\"・・・
VB とかなら\演算子ってのがあるけど・・・
ほんとにPCなしでこんな式ができてしまうのだろうか?!
プロ棋士の目クラ将棋のようです。
投稿情報: くまぷー | 2017年7 月10日 (月曜日) 午後 07時33分
\ は ¥ ???
投稿情報: jyo3 | 2017年7 月10日 (月曜日) 午後 09時00分