• 締切済み

るい乗・べき乗の計算量

例えば5の7乗を計算する場合、5×5×5×5×5×5×5と普通に考えれば6回の「かけ算」で計算ができます。「かけ算6回」ということですね。でも実際は、5×5で5の2乗を計算したら、5の2乗×5の2乗で5の4乗を計算して、それに5の2乗と5をかける。つまり、 (5×5)×(5の2乗)×(5の2乗)×5の4回のかけ算で済みます。 ちなみに、47乗ならば8回だと思うのですが、、、 どなたかこの「べき乗を計算するためのかけ算の最小回数」を求める求め方、、、を教えてください。

みんなの回答

  • pancho
  • ベストアンサー率35% (302/848)
回答No.5

#1の者です。 この手の問題は、回数についての「見込みがついていて検証のみ場合」と「見当すらついていない場合」で方針が違ってきます。 質問の仕方から、問題を提起しただけで見込みもついていない状態と判断されたため、ご自身での努力を促す意味でヒントのみとしました。 「2進数表記せよ」とは、これによって回数の上限と下限が抑えられるので、検討の第一段階となるからですが、これも必要ないようですね。 コメントを見ていると、とても人に教えを請う態度ではなさそうなので、これ以上は差し控えておきます。 以上。

  • gamasan
  • ベストアンサー率19% (602/3160)
回答No.4

にゃるほど 5条を先に計算するのか・・・大汗 失礼しました。

mahler3
質問者

補足

面倒なのでまとめてコメントを。 2進数で済むのならここで尋ねたりはしません。 それから、知りたいのは一般的な解法なんです。 a^27=(((axa)xa)xa^3xa^3)xa^9xa^9 で合計6回ですよね。 (((axa)xa^2)xa^4)xa^8xa^8xa^2xa だと7回ですよね。 27=11011(2進数) かな。 これじゃあ困るんです。最小じゃない。

  • gamasan
  • ベストアンサー率19% (602/3160)
回答No.3

(5×5)×(5の2乗)×(5の4乗)×(5の8乗) ×(5の16乗)×(5の16乗÷5)必殺技・・・だめ? 掛け算しか使えないなら 最後の15乗を8乗、4乗、2乗 5に分けるから 9回じゃないですか? ヒントとしては トーナメント表でしょう 何段の表になるかですね 

回答No.2

最小回数は8回でよいと思います。 1回 5×5=5^2 2回 5^2×5^2=5^4 3回 5^4×5=5^5 4回 5^5×5^5=5^10 5回 5^10×5^5=5^15 6.7.8回 5^15×5^15×5^15×5^2=5^47 あとは7回でできない証明をすればよいのではないでしょうか、この証明は地道に細かく場合に分けてやっていくしかないと思います。 参考までに計算回数だけでいえば5^48を計算して5で割れば7回でできると思います。

mahler3
質問者

補足

47乗だけを確かめたいのではないのです。 一般的にn乗であれば何回のかけ算でできるか? その最小値を示すアルゴリズムなり関数なりを知りたいのです。 ですから高々47についてだけ証明してもね。 わり算は使いません。(笑)

  • pancho
  • ベストアンサー率35% (302/848)
回答No.1

答えをすぐ書いてしまうのはもったいないので、ヒントだけにしておきます。 べき数を2進数で表記してみてください。その内、1となっている数を数えると...。 以上。

mahler3
質問者

補足

甘いですね。

関連するQ&A

  • べき乗を最小回数の掛算で

    いくつかの回答をいただいた「るい乗・べき乗の計算量」なのですが、説明がまずかったようなので再度、タイトルを変更して質問させて下さい。    例えば5の7乗を計算する場合、5×5×5×5×5×5×5と普通に考えれば6回の「かけ算」で計算ができます。「かけ算6回」ということですね。でも実際は、5×5で5の2乗を計算したら、(5の2乗)×(5の2乗)で5の4乗を計算して、それに5の2乗と5をかける。つまり、 (5×5)×(5の2乗)×(5の2乗)×5 の4回のかけ算で済みますよね。 16乗なら4回ですし、47乗ならば8回です。 どなたかこの「べき乗を(掛け算だけで)計算するための掛け算の最小回数」を求める求め方、、、を教えてください。 ちなみに、暗号などの世界や、プログラム言語内での定義では、 a^47=((((axa)xa^2)xa^4)xa^8)xa^16xa^8xa^4xa^2xa のように、2倍を基準に計算を省いています。実用的にはそれで十分なのですが、私が知りたいのは「実用」ではなくて、最小の回数を求める方法です。

  • マイナスのべき乗の計算方法

    マイナスのべき乗の計算方法について、他の方の質問なども見たのですが、私が知りたいことにつながらなかったので、あらためて質問をします。 0.001=1×10^-2乗 という式があります。この式は正しいのでしようか。そしてこの式は、0.001=10^-3乗と同じことを指しているのでしようか。他での解答の中に、10^-2乗の計算の仕方は、1÷(10×10)というふうにするとありましたが、これだと計算が合いません。また、1×0.1×0.1という説明もありましたがどちらも0.01になってしまい計算が合いません。そもそもこの式(0.001=1×10^-2乗)自体が間違っているのでしょうか。また、(0.001=1×10^-2乗)という式は計算の中身であって実際に式として表す場合には0.001=10^-2乗のみで良くて、計算をするときに1を掛けるという意味なのでしょうか。 長くなってしまいましたが、知りたいことは0.001をべき乗で表すとどうなるかということです。こんな基礎的なことが分からないのかといわれそうですが、素人の私にどなたか分かりやすく教えて下さい。よろしくお願いいたします。

  • べき乗則を最小二乗法で求める

    卒業研究で計測した分布をべき乗則 y = ax^k に類似させるべく最小二乗法を計算しようと思ってるのですが 自力で計算した結果 k = {loga×Σ(logy) - Σ(logy × logx)} / Σ(logx)^2 a = Σ(yx^k)/Σ{x^(2k)} で行き詰まって係数の計算までに至りません 最小二乗法で調べてみても簡単な一次式の例しか出ず参考になりません どなたか適切な計算方法について説明お願いします

  • 数学のべき乗の計算

     数学のべき乗の計算は「+-×÷」で計算する場合、どのように計算すれ ばよいでしょうか?  つまり普通の電卓で計算したいのですが  例10.516を0.854べき乗すると7.46になります。  いつもポケコンで計算しています。  ちなみに、「べき乗」は、学校で習うのは何時頃習いますか?「中学か な?」、「高校かな?」                   

  • 乗算回数最小の冪乗アルゴリズム

    断面n次モーメントを計算するプログラムを書いていてふと思ったのですが, X^n を乗算の繰り返しで計算する場合,一般の自然数nについて乗算回数最小の アルゴリズムって存在するんでしょうか? たとえばnが2の冪乗の場合,2乗を繰り返すと1回ごとに X → X^2 → X^4 → X^8 → X^16 → … となるので,X^n は log2(n) 回の乗算で計算でき,たぶんこれが最小だと思います. その他のnについてはどうでしょうか? nの素因数分解とか使えばうまくいくんでしょうか?

  • 足し算と掛け算とべき乗

    掛け算は足し算の(あ)です。 べき乗は掛け算の(あ)です。 テトレーションはべき乗の(あ)です。 ・・・・・・・ ・・・・・・ この場合(あ)として適切なものは何ですか?

  • べき乗根の計算の仕方が分からなくて困ってます。

    微分積分の授業で、べき乗根の計算の授業をしたのですが、教科書にも載ってないので、イマイチ理解が出来ません。。 例えば、  4√√3/4-1/4j  (分かりにくくてすみません。最初の4は4乗根のことで、一番最初の√は全体にかかります。)  のべき乗根の計算をしなさいという問題だと、どのようにやっていくのですか?

  • 0の0乗を1と考える

    べき乗x^n を、1 に x を n 回掛けることと考える場合がある。 その場合は 0^0=1 である。 これは、総乗を使って x^n=Π[i=1,n]x と考える場合も同じである。 総乗の場合も、何も掛けないこと、つまりΠΦは 1 となる。 この時、べき乗の定義を、次のように考えていることになる。 ・x^0=1, ・x^(n+1)=x^n*x (n>=0). この変更により変化するのは、0^0 の値だけである。 以上の文章に、間違いはありますか? なお、これに従ったべき乗に、利便性や0^0での連続性はありませんが、 それは一般的なべき乗でも同様であり、 どちらが正しいかを数学的に証明することはできません。

  • 19の95乗を計算したいのですが…

    つまらない質問で恐縮です。 19の95乗を計算するとしたら、みなさんはどのようにやりますか?まさか19を95回かけ合わせるなどという膨大な時間をかけるなどということはないと思います。かと言って普通の安い計算機では桁数が足りなくて答えは表示されません。何か「上手い作戦」はないでしょうか?どうしても思いつきません。気になってしかたないのです。当方、高校程度の数学は理解できるつもりです。(20-1)の(100-5)乗を使う?とも思いましたがあまり意味もなさそうです。 どなたかご教授願えないでしょうか? ちなみに「パパのための暇つぶしの数学」ということで、結果を仕事に使うとかいうわけではありません。解き方を考える、いわば頭の体操みたいな問題なのですが…。よろしくお願いします。

  • 2の12乗、32乗・・・という計算の計算方法

    2の3乗は2*2*2=8と計算できるのですが、 2の32乗など大きな数字の場合、どのように計算すればよいのでしょうか? またこの計算の名前はなんと言うのでしょうか?