10桁×10桁
B2*B3を計算して下さい。
普通に掛け算すると、有効数字15桁までしか表示できないので、
きちんと計算して文字列で表示して下さい。
(niさん)
解答用参考ファイル:Q172をダウンロード
**********************************************************************************
尚、解答締め切りは05/25(土)の午後8時の予定です。状況によっては
変更される可能性があります。
また、解答発表までは直接数式を書き込むこと・ポイントとなる関数名を
書き込むことはご遠慮ください。
********************************************************************************
he---
投稿情報: jyo-3 | 2013年5 月21日 (火曜日) 午後 08時25分
拙作の超桁数アドイン使っちゃえば、終わりなんですがw
投稿情報: y sakuda | 2013年5 月21日 (火曜日) 午後 08時44分
ええっ、、、、、、、、。
投稿情報: む印 | 2013年5 月21日 (火曜日) 午後 08時52分
◆とにかく作ってみました、
◆超多文字数なのと、検算が大変です・・・(ただ今、検算式作成中・・・)
投稿情報: maron | 2013年5 月21日 (火曜日) 午後 09時02分
あどいん
ええーー
はは、、、、はっは、は、、
投稿情報: jyo-3 | 2013年5 月21日 (火曜日) 午後 09時34分
これ、検証の方が大変w
現時点では極単純にやったんで88
投稿情報: y sakuda | 2013年5 月21日 (火曜日) 午後 09時57分
86で今晩は終わりらしい
私のAddin元々浮動小数点の長桁数の演算用なんで、末桁が0だとEタイプの答えをかえしてきちゃうんで、やっぱり式で検証計算やらないと上手くない。
どうしようかな?
投稿情報: y sakuda | 2013年5 月21日 (火曜日) 午後 10時14分
最初のやつ、同一部分をコピーしてたんで、余計なかっこなんかがあったんで、整理して、80。
へたすると、これで終わっちゃうかも。
niさんの想定どのくらいなんだろ?
投稿情報: y sakuda | 2013年5 月21日 (火曜日) 午後 10時28分
この問題、長い桁どうしの割り算だと大変なことになる。
ワークエリア使っても相当難しいはず。(40年くらい前にFortranで四則演算作ったことがあります。割り算どうやったか全く覚えてませんがw)
投稿情報: y sakuda | 2013年5 月21日 (火曜日) 午後 10時54分
どうもです。
15桁までなら、書式設定を数値にすれば確認できますよね。
下1桁は下1桁どうしの掛け算でOK
あとは・・・・
想定は・・・50前後ですが、もう少し何とかなれば・・・
本当は、もっと桁数の多い計算ができないかと
投稿情報: ni | 2013年5 月22日 (水曜日) 午前 12時02分
手抜きして、50~60くらいとおもったんですが、手抜きするとやはり稀にゴミが出るケースがあってダメでした。
投稿情報: y sakuda | 2013年5 月22日 (水曜日) 午前 08時32分
>niさんの想定どのくらいなんだろ?
そりゃ言わない方が良いと、,,,おもう・・・・
言えば、そこに集まるから、、、、
>想定は・・・50前後ですが、もう少し何とかなれば・・・
あーーー言っちゃた。・・・ねーーーーー
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午前 10時00分
ちょっとやってみた。
しかし、、、、
>手抜きして、50~60くらいとおもったんですが、手抜きするとやはり稀にゴミが出るケースがあって
うんうん、、、心配・・・・・・
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 02時09分
無駄やってるの気が付いて、70
ただし、今までの式答えが100等きわめて小さい数になった時前ゼロが付いちゃいます。 00100 等
こういうのもちゃんと処理するって前提ですか>niさん
投稿情報: y sakuda | 2013年5 月22日 (水曜日) 午後 02時47分
>きわめて小さい数になった時前ゼロが付いちゃいます。
ん・・・・・・
きちんと式を
見てませんでした。必ず、10桁×10桁と、思ってました。
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 04時20分
>わめて小さい数になった時
--RIGHT(RAND(),10)
この式を見る限りでは8~10桁になるのでは
勿論ですが確率が0ではありませんが
B2・B3共にとなると、これは 1/天文学的数値 で
出現を待つまでに可也の年数がかかってしまうのでは
この問題は、、、落とし穴があったのですね、、、
まさかこの関数も、この関数も・・・とは
使えるのがこの関数だけとは、、、知りませんでした
改めて勉強させていただきました
これだから関数は、、、面白い
投稿情報: からくち | 2013年5 月22日 (水曜日) 午後 07時19分
約1万回ほど
6806
2756
510
78
9
2
0
0
0
0
0
どれくらいか、テストとしてみました。
=LEN(B2*B3) でね、
20桁~15桁
・・・・・・・・・・・・・
で、私も・・・10桁未満は・・・無視しました。
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 08時04分
2文字短くしようとしたら、、、
その前と、たまに答えが合わない。
短縮は、,,怖いなーーーー
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 08時54分
答えが10桁以下・・・想定外です^^;
9桁×9桁ぐらいまではあったほうがうれしいけれど。
10桁×10桁限定でもいいですよ。
桁上がりの有無は必須でおねがいします。
本当は、もっと大きい桁数を扱いたくて(素数計算とか)
投稿情報: ni | 2013年5 月22日 (水曜日) 午後 08時56分
>やっぱり式で検証計算やらないと上手くない。 どうしようかな?
3つ、4つ、、書いて比較作戦なのだ。
ん、、、全部同じパターンで駄目なら、、、、むむーーーそれは考えてない。
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 08時57分
>まさかこの関数も、この関数も・・・とは
一つしか、、気付いてないジョーかも、、
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 08時59分
>10桁×10桁限定でもいいですよ。
それなら、少し短くなるが、、、だが、
頻繁に・・・
10・9
10・8
10・7
たまたま
8・7
等があるから
>9桁×9桁ぐらいまではあったほうがうれしいけれど。
7・7等までは対応させる予定です
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 09時04分
>この問題は、、、落とし穴があったのですね、、、
えっ???
全く出題者の想定外・・・
>一つしか、、気付いてないジョーかも、、
全く気がついてない出題者・・・
投稿情報: ni | 2013年5 月22日 (水曜日) 午後 09時24分
>言えば、そこに集まるから、、、、
そこに集めておいて、抜け駆けしようとたくらんでるんですが、
何も思いつかない・・・
投稿情報: ni | 2013年5 月22日 (水曜日) 午後 09時33分
>7・7等までは対応させる予定です
B2*B3の値が1~5桁までは
文字列にする為に、頭に0が付きますが
それ以外の値は正しいです
因みに、、、B2=0、B3=0では、00となります
6桁以上はそのままで、、、
>全く出題者の想定外・・・
わたしも知りませんでした、、、けど
MicrosoftのExcel開発者は知っている、、、のかな
意外と・・・と言う事もありうる、、、ような、、、
投稿情報: からくち | 2013年5 月22日 (水曜日) 午後 09時48分
あーっ、落とし穴、あったー
落とし穴埋めて、ここを変えると、6文字短くなった
Excelの有効数字って、15桁であってます?
投稿情報: ni | 2013年5 月22日 (水曜日) 午後 09時51分
>あーっ、落とし穴、あったー
えーーーー、、、気づかないじょー・・・・
ってことは、、、、
>落とし穴埋めて、ここを変えると、6文字短くなった
ええーーーー
>想定は・・・50前後ですが、もう少し何とかなれば・・・
とあわせると、、、
なんとかなったのねーーーーー
ってことは、40前後????・・・・げげーーーーー
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 09時59分
落とし穴埋めたつもりが、新たな落とし穴が・・・orz
埋め戻して6文字増加、元に戻ってしまいました
投稿情報: ni | 2013年5 月22日 (水曜日) 午後 10時00分
ひとつ直すとまた不具合が・・・もう、いや
それで、10文字増加
投稿情報: ni | 2013年5 月22日 (水曜日) 午後 10時14分
う~~~ん、、、書いても、、、いいのかな、、、
落とし穴の、、、1つ
=LEFT(B2*B3,15)
20桁から頭の15桁(残りは00000)、、、
決して正しい値では無いと言うことです
投稿情報: からくち | 2013年5 月22日 (水曜日) 午後 10時20分
>20桁から頭の15桁(残りは00000)、、、
>決して正しい値では無いと言うことです
それは気付いてました。
15桁目は頻繁に違う
14桁目も怖い
13桁目は10万回テストに耐えている、、、、
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 10時35分
以前の研究を思い出しましたが、
=9.99999999999999+6/10^15 は10にならないが、
=9.99999999999999+7/10^15 は10になる・・・・とか、、、
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 10時44分
>それは気付いてました。
流石、、、ジョー3さんです
問題はその先、、、
でも、それは、、、書いてはいけない
投稿情報: からくち | 2013年5 月22日 (水曜日) 午後 10時52分
>決して正しい値では無いと言うことです
そこにはまりました。
で、修正したつもりが別の不具合が出て、
それを修正すると全然違う答えになって、
さらに修正が必要になったと。
1000000001×1000000001=1000000002000000001
が出なかった。
投稿情報: ni | 2013年5 月22日 (水曜日) 午後 11時04分
>1000000001×1000000001=1000000002000000001
ちゃんと出るけど、短くならんw
投稿情報: y sakuda | 2013年5 月22日 (水曜日) 午後 11時28分
>13桁目は10万回テストに耐えている、、、、
と言ったが、、、
1000000001
×
999999999
で、私・・・・つぶれ、、、、みたいです。
明日・・・以降、、、やり直します。
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 11時43分
結局最初考えた、、長いのに戻りそう・・・・
短くしようとすると、危険かなーーー
・・・・・・
ねる、ねる。きょうはやめ・・・・・
投稿情報: ジョー3 | 2013年5 月22日 (水曜日) 午後 11時46分
アドイン使って、完璧な計算が可能ですので、例を投稿していただければ、正解を計算します。
投稿情報: y sakuda | 2013年5 月23日 (木曜日) 午前 12時32分
ジョー3さん、、、とんでもないものを・・・
正直、、、最初40文字と思いました
しかし落とし穴が、、、で修正45文字
関数的には全てOK、、、が、、、
>1000000001×999999999
これ、、、関数以前、、、計算そのもの、、、
この問題、、、思っていた以上に、、、根が深い
>やり直し
です。。。
投稿情報: からくち | 2013年5 月23日 (木曜日) 午前 06時31分
=B$2*MID(TEXT(B$3,REPT(0,10)),ROW(A1),1)*10^(10-ROW(A1))
これを下へ、、、10行
___________________0
900,000,000,900,000,000
_90,000,000,090,000,000
__9,000,000,009,000,000
____900,000,000,900,000
_____90,000,000,090,000
______9,000,000,009,000
________900,000,000,900
_________90,000,000,090
__________9,000,000,009
これを合計すると当たり前のように、、、
1,000,000,000,000,000,000
B2*B3と同じになってしまう
投稿情報: からくち | 2013年5 月23日 (木曜日) 午前 07時57分
これ、、、面白いけど、、、厄介かも
A1=999,999,999,999,999,000
B1=576.03125
C1=A1+B1=999,999,999,999,999,000
B1=576.031250000001
C1=A1+B1=1,000,000,000,000,000,000
=999999999999999000+576.03125=999,999,999,999,999,000
=999999999999999000+576.031250000001=1,000,000,000,000,000,000
=999999999999999000+576+64.03125=999,999,999,999,999,000
=999999999999999000+576+64.0312500000001=1,000,000,000,000,000,000
投稿情報: からくち | 2013年5 月23日 (木曜日) 午後 01時13分
>これ、、、面白いけど、、、厄介かも
ややや、、、、、、、やっかい、、、、すぎ、、、
投稿情報: ジョー3 | 2013年5 月23日 (木曜日) 午後 01時44分
>やっかい、、、、すぎ、、、
ですね、、、
999999999999999000+576は、、、そのまま
999999999999999000+577では、、、1000000000000000000
でも、、、
999999999999999000+576+64でも、、、そのまま
数値の大きさで判断では、ダメなのです
本当にエクセル君は、、、計算が苦手
投稿情報: からくち | 2013年5 月23日 (木曜日) 午後 07時27分
Excelの不動小数点、結構調整しちゃうんでそういうことも起こるんだと思います。
何にもしてないと、質問掲示板で、「等しいはずが等しくないと判断されます」って質問の嵐になりますw
投稿情報: y sakuda | 2013年5 月23日 (木曜日) 午後 07時56分
こうなってくると・・・・sakudaさんの文字数に、わたしは、敵いません。
そのうち、100越えで、、、=最初の案・・・案だけだった。が、、、
そのうち、、手を付けます。
投稿情報: ジョー3 | 2013年5 月23日 (木曜日) 午後 09時32分
字数あまりでてきてないですが、結局どこに落ち着くんだろ?
というか、何通回答があつまるのか?
投稿情報: y sakuda | 2013年5 月23日 (木曜日) 午後 11時06分
>1000000001×999999999
げっ、これ、9が18個並ぶんですよね?
だめだぁ~
ということで、出題者回答例、できていません。
投稿情報: ni | 2013年5 月24日 (金曜日) 午前 12時58分
一万回に一回くらいの割合で、B2,B3に小数点のついた数字が出てきます。
どうも、Randがきわめて小さい数字を出してきてるのだと思われます。
式の方もそういうのは想定してないし、チェックプログラムも対応しきれないw
投稿情報: y sakuda | 2013年5 月24日 (金曜日) 午前 10時32分
例によって、明日の晩遅刻です。
最初の方の70から進歩してませんが、さびしくなる可能性もありそうですので、熊ぷーさんとこへ回答送っておきますので、よろしくーー
投稿情報: y sakuda | 2013年5 月24日 (金曜日) 午前 11時04分
>一万回に一回くらいの割合で、B2,B3に小数点のついた数字が出てきます。
へーーー、、私のは、、、
小数点、、、出てこないなーーーー・・・一応20万回ほど、、
投稿情報: ジョー3 | 2013年5 月24日 (金曜日) 午後 12時27分
あ、、、出てきました。面白い現象です。
0.00002153224023970780000
3.970780000
上は実際の数
下は、右から10桁取って、数値にした結果。
なぜか、元の数で、
0.0000と小数点以下が4つ続いたときに、起こるみたいで、、????わからん、、、、
投稿情報: ジョー3 | 2013年5 月24日 (金曜日) 午後 01時10分
そうかーーー
標準の
Eから逆に数えて
そのあとの数値分下がって勝手に、 小数点を付けるのだね、,,,
むむーーーー、、、、芸が細かい(とも、、、言えるかも)
投稿情報: ジョー3 | 2013年5 月24日 (金曜日) 午後 02時11分
◆やっと、63になりました
投稿情報: maron | 2013年5 月24日 (金曜日) 午後 03時02分
◆ひょっとして、58になったかも・・・
投稿情報: maron | 2013年5 月24日 (金曜日) 午後 04時12分
◆やっぱり、58はダメでした・・・
◆でも、61はいいかも・・・
投稿情報: maron | 2013年5 月24日 (金曜日) 午後 04時46分
この問題は明日で終了ですが
おそらく当分の間、、、
いや、、、思い出しては時折弄くり回す事でしょう
これ、、、終りが見えません
余りにも色々な事が多過ぎて
従いまして、、、
回答を書いても長いだけで面白くも無い式になってしまう
と言う事で、回答を書かずに
この問題から得たものを弄り回しているのみ
これは面白いです
niさん&ジョー3さん、、、ありがとう
当分の間、、、お遊び出来ます
投稿情報: からくち | 2013年5 月24日 (金曜日) 午後 07時17分
◆61も63も完全とは言えない気がしてきました・・・
投稿情報: maron | 2013年5 月24日 (金曜日) 午後 08時07分
>これは面白いです
なぞが、、、なぞを、、、、・・・・
それを、、、
1)どうでも良いとするか。
2)色々しらべるか?。
3)しゃぶり尽くすか。・・・・・・
・・・・・・・・・・・・・・・・・・・・
3)にしたいが、、、、、飲んでるうちに、、、、・・・・・忘れることが多い。じょーー。
投稿情報: ジョー3 | 2013年5 月24日 (金曜日) 午後 08時23分
未だに回答例ができておりません。
こうなったら、力づくでも作成したいところですが、
とんでもない長い式になりそうです。
これをタイプミス無しに作成できるか?
作業セルをいっぱい使って何とか一度はできていたんですが・・・
投稿情報: ni | 2013年5 月24日 (金曜日) 午後 08時46分
なんとか、できました。
>1000000001×999999999
>1000000001×1000000001=1000000002000000001
どちらも計算できています。
他に落とし穴・・・もうわかりません。
で、260文字です。
出題者回答例としてお送りしました。
投稿情報: ni | 2013年5 月24日 (金曜日) 午後 10時00分
ほほーーーーー
あした、、、やるかも、、、
投稿情報: ジョー3 | 2013年5 月24日 (金曜日) 午後 10時04分
>他に落とし穴・・・もうわかりません。
私のもmaronさんのも厳密にどうだかわかりません。
全件チェックは不可能ですからw
回答がでたところで、ダメなケース探すってのも面白いかもwww
投稿情報: y sakuda | 2013年5 月24日 (金曜日) 午後 10時24分
しかし、なんで小数点のある数字が出てくるんだろ?
問題の式をどう変えても解消できない^^;
投稿情報: y sakuda | 2013年5 月24日 (金曜日) 午後 10時38分
>熊ぷーさんとこへ回答送っておきますので、よろしくーー
了解しました。∠(@O@) ビシッ!
>出題者回答例としてお送りしました。
拝受しました。 ∠(@O@) ビシッ!
投稿情報: くまぷー | 2013年5 月24日 (金曜日) 午後 11時01分
>しかし、なんで小数点のある数字が出てくるんだろ?
例えば、
=rand() が、
0.0000444456789055555 とする。
そのとき、
=right(rand(),10) は、
055555E-05 と、なって、、
先頭に -- があるので、、
0.55555
と、エクセルさんが処理・・・してるみたいですね、、、
てことで、
少数計算が意図せず・・・だが、・・・時々出る。
・・・・・ってことでしょうか?
投稿情報: ジョー3 | 2013年5 月25日 (土曜日) 午前 06時14分
あと、、、
=RIGHT(D14,20)
とすると、、、
4.44456789055555E-05
となって、、、えくせるさんの、、、思考・・・処理が、、、おもしろいけど、、、、
投稿情報: ジョー3 | 2013年5 月25日 (土曜日) 午前 06時27分
なるほど・・・・・
投稿情報: y sakuda | 2013年5 月25日 (土曜日) 午前 07時21分
> =RIGHT(D14,20)
あ、、、かりに、、、
0.0000444456789055555 を、、
D14 に入れてました。・・・・
・・・・・・・・・・失礼致しました。
投稿情報: ジョー3 | 2013年5 月25日 (土曜日) 午前 07時42分
問題に小数点
=INT(RAND()*10^10)
こうすればよかったのかな?
投稿情報: ni | 2013年5 月25日 (土曜日) 午前 09時49分
>こうすればよかったのかな?
少数が出るとは、、、気付かなかった。
言われて始めて、、、調べた。・・・・
投稿情報: ジョー3 | 2013年5 月25日 (土曜日) 午前 11時15分
>こうすればよかったのかな
問題に使われている式は、、、
--right(rand(),10) だったかな
例えばrand()の値が0.123000000000000
この場合では、--right(0.123,10) となります
上記は極端な例ですが、例えば
right(rand(),15) としますと
0.12345678901234?
この最後の?が0の場合(勿論ですがその前の値も同様ですが)
.12345678901234 の15文字が返されます
len(right(rand(),15)*1)
これの値は、、、
15、、、当たり前ですね
時折14や13も、、、でも16も出るのですよ
rightで15文字しか得ていないのに、、、
同じですね、、、
投稿情報: からくち | 2013年5 月25日 (土曜日) 午後 12時27分
わたしも、本題以外に、、、あそんでたです。
> =INT(RAND()*10^10)
これ、、10桁出るかなーーーー・・・と、気になった。・・・ので、、、
3万回で出ました。
いま、、、9桁を調べてます。
あ、、、、なんか、、、エクセルさんが・・・・変です・・・・・
ネット見ながら、、、テストは、、、パソコン、,,つらいのかなーーーーー
あと、、最初
10桁×10桁 と、問題にあったので、、、
勝手に、、
=1000000000+int(rand()*9000000000)
なんて、式を想像していた。
投稿情報: ジョー3 | 2013年5 月25日 (土曜日) 午後 03時52分
>>1000000001×999999999
>>1000000001×1000000001=1000000002000000001
>どちらも計算できています。
◆それで、190になりました
>>他に落とし穴・・・もうわかりません。
投稿情報: maron | 2013年5 月25日 (土曜日) 午後 03時54分
あ、、間違い・・・・
> =INT(RAND()*10^10)
=len(rand()*10^10)
だった。
・・・・・・・・・・・・・
投稿情報: ジョー3 | 2013年5 月25日 (土曜日) 午後 04時00分
> ◆それで、190になりました
いろいろ、、、遊んでたら、,,本題を・・・忘れてました。
だが、、、そのうち、、、、10×10限定とかで・・・・やってみるかも、,,,
きょうは、、、、、nomukara yannnai kamo,,,,
投稿情報: ジョー3 | 2013年5 月25日 (土曜日) 午後 04時39分
どうすればいいのやら、、見当もつかないまま・・・
しかし、参加はしたい、、、
・・・ということで一応やったというだけの83を^^;
投稿情報: む印 | 2013年5 月25日 (土曜日) 午後 06時08分