71 から何も思いつかないので、一応出題者解答は71で送りました。
まだ、明日粘ってみますがw
=MATCH(B3,MMULT(C1:J1+1,MID(D3,ROW(1:8),1)*COLUMN(B:J)^(8-ROW(1:8))))+1
(y sakudaさん 2月18日談)
« 第88回 何進数ですか? | メイン | 第89回 πの計算 »
最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。
画像を読み取れない場合は 別の画像を表示してください。
アカウント情報
(名前は必須です。メールアドレスは公開されません。)
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
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 |
結局なにもおもいつきませんでした^^;
投稿情報: y sakuda | 2011年2 月19日 (土曜日) 午後 08時05分
短くしようと思って、、LOGで遊びましたが、、
時々、うまくいきませんでした。・・・・
・・・・・・
どなたか、、、うまくされそうですが、、、、
投稿情報: ジョー3 | 2011年2 月19日 (土曜日) 午後 08時08分
75{=MATCH(B3,(LEFT(D3*1)+MID(D3*1&0,2,1)/ROW(1:10))*ROW(1:10)^(LEN(D3*1)-1))}
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 08時16分
sakudaさんのこれで行けそう?
69=MATCH(B3,MMULT(C1:J1+1,MID(D3,ROW(1:8),1)*COLUMN(A:J)^(8-ROW(1:8))))
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 08時20分
最初からギブアップでした~
投稿情報: くまぷー | 2011年2 月19日 (土曜日) 午後 08時31分
上手くいきそうで…いかなかった^^
配列を二重にしようとしたのが敗因か…
悔しい~! > <;
投稿情報: supermab | 2011年2 月19日 (土曜日) 午後 08時44分
なーんにも思いつかなくて、力づくで
=MATCH(--D3,{SUMPRODUCT(MOD(INT(B3/2^{0,1,2,3,4,5,6,7,8}),2)*10^{0,1,2,3,4,5,6,7,8}),0)+1,
SUMPRODUCT(MOD(INT(B3/3^{0,1,2,3,4,5,6,7,8}),3)*10^{0,1,2,3,4,5,6,7,8}),0)+1,
SUMPRODUCT(MOD(INT(B3/4^{0,1,2,3,4,5,6,7,8}),4)*10^{0,1,2,3,4,5,6,7,8}),0)+1,
SUMPRODUCT(MOD(INT(B3/5^{0,1,2,3,4,5,6,7,8}),5)*10^{0,1,2,3,4,5,6,7,8}),0)+1,
SUMPRODUCT(MOD(INT(B3/6^{0,1,2,3,4,5,6,7,8}),6)*10^{0,1,2,3,4,5,6,7,8}),0)+1,
SUMPRODUCT(MOD(INT(B3/7^{0,1,2,3,4,5,6,7,8}),7)*10^{0,1,2,3,4,5,6,7,8}),0)+1,
SUMPRODUCT(MOD(INT(B3/8^{0,1,2,3,4,5,6,7,8}),8)*10^{0,1,2,3,4,5,6,7,8}),0)+1,
SUMPRODUCT(MOD(INT(B3/9^{0,1,2,3,4,5,6,7,8}),9)*10^{0,1,2,3,4,5,6,7,8}),0)+1},0)
ってしようと思ったら、「数式が長すぎますっ!!!」
って、おこられました^^;
投稿情報: ni | 2011年2 月19日 (土曜日) 午後 09時50分
ちょっと用足ししてました。
りすさんのしばらく眺めてたんですが、どうもよう分からん^^;
>sakudaさんのこれで行けそう?
おっしゃる通りみたいです。
まるで考えなかったw
投稿情報: y sakuda | 2011年2 月19日 (土曜日) 午後 09時52分
>ってしようと思ったら、「数式が長すぎますっ!!!」
それ以前に{}の中に数式なんかかけないんじゃないのかしらん???
投稿情報: y sakuda | 2011年2 月19日 (土曜日) 午後 10時04分
N進数の全桁を10進数に戻すのではなく、
上位2桁のみ、10進数に戻して判定しています。
最初は下1桁や下2桁や上位1桁で試してみましたが、
誤動作が多かったため、上位2桁にしました。
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 10時09分
>上位2桁のみ、10進数に戻して判定しています。
上位二けたは分かりますが・・・・
確かに動いてるんですが、いまだに理解できてない^^
minmaxさんと言いリスさんと言い一回頭の中検査してみたいですねーー
投稿情報: y sakuda | 2011年2 月19日 (土曜日) 午後 10時15分
実際に、上位1桁だけ計算させれば、理解出来ると思います。
上位2桁,上位3桁と行くに従って、増加分が減るので、
ほとんど誤差になって行きます。
たとえば、255(10)=2010(5)の上位1桁だけ10進数に
戻してみると、
2:2*2^3=16
3:2*3^3=54
4:2*4^3=128
5:2*5^3=250
6:2*6^3=432
7:2*7^3=686
8:2*8^3=1024
9:2*9^3=1458
10:2*10^3=2000
となるので、255を検査するので、5進数と判定されます。
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 10時37分
255(10)=11111111(2)だと、
2:1*2^7=128
3:1*3^7=2187
なので、2進数と判定されます。
上位1桁だけで、進数間の増加が大きいため、
上位2桁だけで十分なのです。
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 10時46分
ああ、なるほど、それで桁数が出てきてるのか・・・・
やっと分かった。
私は単純にn進数として読んで、元の値になるやつって発想しかできなかった^^;
投稿情報: y sakuda | 2011年2 月19日 (土曜日) 午後 10時49分
ふ~ん、そうだったのか~
言われてみればそうだけど
考えもしなかった・・・
投稿情報: くまぷー | 2011年2 月19日 (土曜日) 午後 10時52分
まぁ、答えが2~10になれば、何をしても良い訳ですからね。
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 10時56分
>それ以前に{}の中に数式なんかかけないんじゃないのかしらん???
が~~~~~~ん。
そういえば、「入力した数式は正しくありませんっ!!!」
って、おこってた気もする。
でも、「長すぎる」っておこられたことも確かにあった。
どんな式だったか、入力確定できなかったので、消えてしまいました。
配列、難しいです。
投稿情報: ni | 2011年2 月19日 (土曜日) 午後 10時57分
上位2桁だけでMMULTでやるともっと短くなりませんか?
試してますが、今一MMULTをマスターしていないので、
短くなりません。
71=MATCH(B3,MMULT({1,1},MID(D3*1,{1;2},1)*COLUMN(A:J)^(LEN(D3*1)-{1;2})))
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 11時04分
携帯から見たとき
りすさんの
74
{=MATCH(B3,(LEFT(D3*1)+MID(D3*10,2,1)/ROW(1:10))*ROW(1:10)^(LEN(D3*1)-1))}
に見えました。
で、さすがだなあって感心した。
MMULTを使わなければ、LENで桁数を判定し、上の2桁で判定するのありだなと頭の中では思いましたが、そのまま式にしませんでした。
同様に上1桁で判定しようと、夕方pcでやってみましたが完成しませんでした。
もうちょっと後でやってみようと思います。
sakudaさんの解答は何となく予想出来ました。
ただ、せっかくのMMULTが若干無駄に使われているように感じます。
それにしてもMMULTは嫌い、っていうか苦手。。
頭の中で考えると混乱しがちになってしまいます。
投稿情報: min | 2011年2 月19日 (土曜日) 午後 11時35分
そっか、D3*10で良いのかw
気が付かなかった。凡ミス
投稿情報: りす | 2011年2 月19日 (土曜日) 午後 11時41分
>凡ミス
私だったら、凡ミスというより*10は簡単に気付かないと思う。
投稿情報: min | 2011年2 月19日 (土曜日) 午後 11時49分
とりあえず、
りすさんの
71=MATCH(B3,MMULT({1,1},MID(D3*1,{1;2},1)*COLUMN(A:J)^(LEN(D3*1)-{1;2})))
は
67{=MATCH(B3,MMULT(ROW(1:10)^(LEN(-D3)-{2,3}),--MID(D3*10,{1;2},1)))}
でいいと思いますが。
投稿情報: min | 2011年2 月19日 (土曜日) 午後 11時57分
LEN(D3*1)-1
を
LEN(D3/10)
で出来ないか?とか考えていたので、
そんなに難しい話じゃないと思いますよ。
投稿情報: りす | 2011年2 月20日 (日曜日) 午前 12時01分
すげー
65=MATCH(B3,MMULT(ROW(1:10)^(LEN(-D3)-{2,3}),--MID(D3*10,{1;2},1)))
で良さそうですね。
投稿情報: りす | 2011年2 月20日 (日曜日) 午前 12時06分
失礼しました。
67ではなく
65=MATCH(B3,MMULT(ROW(1:10)^(LEN(-D3)-{2,3}),--MID(D3*10,{1;2},1)))
でしたね。
投稿情報: min | 2011年2 月20日 (日曜日) 午前 12時07分
かぶりました。。
投稿情報: min | 2011年2 月20日 (日曜日) 午前 12時08分
あら、
74{=MATCH(B3,(LEFT(D3*1)+MID(D3*10,2,1)/ROW(1:10))*ROW(1:10)^(LEN(D3*1)-1))}
も
73{=MATCH(B3,(LEFT(D3*1)+MID(D3*10,2,1)/ROW(1:10))*ROW(1:10)^(LEN(-D3)-2))}
になりますね。
投稿情報: りす | 2011年2 月20日 (日曜日) 午前 12時14分
>になりますね。
そのとおりです。
投稿情報: min | 2011年2 月20日 (日曜日) 午前 12時16分
うーーん、りすさんの発展してますねーー
それにしてもminmaxさん人の見て良く即座に改造できますねーー
>ただ、せっかくのMMULTが若干無駄に使われているように感じます。
>それにしてもMMULTは嫌い、っていうか苦手。。
私の場合、mabさんとかNLPさんみたいに線形数学強くないですが、一応学生時代に行列かなり叩き込まれてますから、結果を割と頭の中ですっきり処理できるんです。
ただ、硬直的な使い方になってるきらいはあるでしょうねーー
それに、「関数でできますか?」ではSumが全体のSum取っちゃうんで、その代用として使ってるだけで本来の行列計算じゃないですけどねwww
投稿情報: y sakuda | 2011年2 月20日 (日曜日) 午前 12時17分
しかし、私のあっさりりすさんに60台に改造されちゃったし、りすさんのはどんどん短くなるし・・・・
minmaxさんの本来バージョンは出てきてないし・・・・
予想どうりとは言え、今回も出題者完敗ですねーー^^;
今送ってある(来週になるのかどうか知りませんが)のもまた同じパターンかもw
投稿情報: y sakuda | 2011年2 月20日 (日曜日) 午前 12時20分
>本来バージョンは出てきてないし・・・・
ここまでくれば出す価値は全くないと思いますが、
64=MATCH(B3,MMULT(ROW(1:10)^(8-COLUMN(A:H)),--MID(D3,ROW(1:8),1)))
あんまりにもまともなので今回は出さないでおこうと思っていました。。
投稿情報: min | 2011年2 月20日 (日曜日) 午前 12時27分
すげー
投稿情報: りす | 2011年2 月20日 (日曜日) 午前 12時37分
>ここまでくれば出す価値は全くないと思いますが、
いやーー、すごいです。
私のが無駄だらけだってのを見事にさらけだしてくれてますね^^
投稿情報: y sakuda | 2011年2 月20日 (日曜日) 午前 12時42分
そう言えば、この問題ジョー3のQ87のストレートな裏問なんで、ジョー3が考えておられた裏問とモロに被るんじゃないかと思ったんですが、ジョー3が出てこなかったところを見ると違ってましたかね?
だとするとジョー3の裏問がまだあるってことになりますねーー
投稿情報: y sakuda | 2011年2 月20日 (日曜日) 午前 12時56分
COLUMN(A:H)とROW(1:8)で掛け合わせるのか…
MMULT、何となく分かって来た。
投稿情報: りす | 2011年2 月20日 (日曜日) 午前 01時00分
>MMULT、何となく分かって来た。
よー分からずに、ちゃんと使ってるってのもすごい話じゃw
投稿情報: y sakuda | 2011年2 月20日 (日曜日) 午前 01時13分
切り貼りしてるだけなら…
投稿情報: りす | 2011年2 月20日 (日曜日) 午前 01時19分
まぁ・・・なんだ・・・
・・・これでよかろー・・・
31=INT(B3^(1/LOG10(D3+(D3*1=1))))
DIV0対策と最大乗数のrを求め底の変換
投稿情報: きっちー | 2011年2 月22日 (火曜日) 午前 04時08分
>=INT(B3^(1/LOG10(D3+(D3*1=1))))
ほーーーー・・・・・
さすがーーーーーー
投稿情報: jyo3 | 2011年2 月22日 (火曜日) 午前 06時29分
>=INT(B3^(1/LOG10(D3+(D3*1=1))))
きっちーさんの面白いのですが、残念ながらあちこちダメですね
例えば1が1進数と表示されます
また、10の4進数 00000022 が5進数に判定されるなど、
計149ヶ所エラーになるようです。
投稿情報: y sakuda | 2011年2 月22日 (火曜日) 午前 11時24分
>きっちーさんの面白いのですが、残念ながらあちこちダメですね
うわーーー・・・残念ですーーー
でも、私の、、LOG使用したやつは、、、もっともっと、、、エラーがあった。
40台でしたけどね、・・・・・
・・・・・・・
ちょっと試した、ところでは良かったので,深く調べませんでした。
て、ことで、、、きっちーさん、、・・・・改作出るかもね、
>例えば1が1進数と表示されます
それはすぐ直るでしょうが、、、
>10の4進数 00000022 が5進数に判定されるなど、
ほんとだーーー、、sakudaさん、よく調べましたネーーー・・・・
すごいですーーーー・・・・
投稿情報: ジョー3 | 2011年2 月22日 (火曜日) 午後 12時16分
>よく調べましたネーーー・・・・
当然プログラムが勝手に^^;
投稿情報: y sakuda | 2011年2 月22日 (火曜日) 午後 12時36分
ま、それはエクセルの丸め誤差ってやつですかね
投稿情報: きっちー | 2011年2 月22日 (火曜日) 午後 03時18分
>ま、それはエクセルの丸め誤差ってやつですかね
残念ながら誤差の問題ではなく、やはり手法に無理があると思います。
例えば、10の4進数 00000022 の時、Int前の数値は5.55804245460721 ですから誤差で生じるには無理です。
式自体のからくりがあまりピンと来ていないので直せる話かどうか見当付きませんがね・・・・・
投稿情報: y sakuda | 2011年2 月22日 (火曜日) 午後 07時14分