[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part138 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part138 http://mevius.5ch.net/test/read.cgi/tech/1528194762/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
471: デフォルトの名無しさん (ワッチョイ 5f51-bAjg) [sage] 2018/07/06(金) 14:19:45.98 ID:v98PP3uI0 教えてください Power1とPower2はxのn乗を求める関数だそうなのですが なぜPower2がxのn乗になるのかさっぱり分かりません しかもPower2の方がPower1よりも効率がいいらしいです よろしくお願いします double Power1(double x, uint n) { double power = 1; while (n > 0) { power = power * x; n = n - 1; } return power; } double Power2(double x, uint n) { double power = 1; while (n > 0) { if (n % 2 == 1) power = power * x; x = x * x; n = n / 2; } return power; } http://mevius.5ch.net/test/read.cgi/tech/1528194762/471
477: デフォルトの名無しさん (ワッチョイ 5f51-bAjg) [sage] 2018/07/06(金) 15:31:31.99 ID:v98PP3uI0 >>472 ありがとうございます 定数だけの四則演算やキャストはコンパイルの時点で行われるから 効率に影響は無いと習ったのですがこの場合は違うのですね キャストがコンパイル時と実行時のどちらで行われるかを判断する 簡単な方法があれば教えてほしいです >>473 >>476 ありがとうございます 指数法則が関係あるのですね これをヒントにもう一度考えてみます >>474-475 ありがとうございます 教えてもらったことをヒントに再帰を使ってxのn乗を作ってみたのですが この関数はあってますか? でも、やっぱりなぜPower2がxのn乗になるのかよく分かりませんでした double Power3(double x, uint n) { if (n == 0) return 1; else if (n % 2 == 0) return Power3(x, n / 2) * Power3(x, n / 2); else return Power3(x, (n - 1) / 2) * Power3(x, (n - 1) / 2) * x; } http://mevius.5ch.net/test/read.cgi/tech/1528194762/477
479: デフォルトの名無しさん (ワッチョイ 5f51-bAjg) [sage] 2018/07/06(金) 16:10:07.44 ID:v98PP3uI0 >>478 ありがとうございます そのPowerを再帰を使わずに書くと>>471のPower2になるということですか? なんだか分かりそうな気がしてきたのでその方向でもう一度考えてみます! http://mevius.5ch.net/test/read.cgi/tech/1528194762/479
481: デフォルトの名無しさん (ワッチョイ 5f51-bAjg) [sage] 2018/07/06(金) 17:25:12.79 ID:v98PP3uI0 お陰様で>>471について理解できたと思います どうもありがとうございました! >>480 言われてみると、>>471のPower1やPower2では0の0乗が1になりますが >>478のPowerだと0の0乗が0になりますね 調べてみたらWikipediaに「0の0乗」というページがあって 確かに0の0乗を1と考えることが多いと書いてありましたが それ以外の考え方もあるみたいです http://mevius.5ch.net/test/read.cgi/tech/1528194762/481
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.430s*