- 1 名前:デフォルトの名無しさん mailto:sage [2019/11/07(木) 11:35:36.76 ID:4wggfTwe.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part145 mevius.5ch.net/test/read.cgi/tech/1568362404/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語)
- 160 名前: mailto:sage [2019/11/24(日) 19:55:00.69 ID:oHJXyQoT.net]
- >>155
はちみつさんは lisp-er ですから、lisp-er 的な視点で現在のプログラミング環境をみれば、 やっと時代が lisp に追いついてきた、という感慨が発生するのも自然だと思いますよ GC も lisp の産物ですから 「適正に欠く」と判断する推論内容は理解できませんね
- 161 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 20:23:39.32 ID:lsOVnPbd.net]
- >>159
それは、おまえも適性を欠いているということだ 形容詞に比較をつけないとか、定量的でないとか、 魔法的にアレしてくれるだろうとか おまえの頭ん中も同じだとここで露呈して今どんな気持ち?
- 162 名前: mailto:sage [2019/11/24(日) 21:42:37.16 ID:oHJXyQoT.net]
- >>160
私に適性がないのはそのとおりなのでしょうが、いちいち定量的に条件を明示して話をしなければならないわけでもないでしょう 魔法的にアレするレイヤーの話は別途規定する前提で、今は特に大局観を語りたいときにはね あなたは、戦術レベルの話はできても戦略レベルの話は理解できない大局観に欠いた狭量な、例えば java 屋さんに見えますね
- 163 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 22:00:07.13 ID:lsOVnPbd.ne
]
- [ここ壊れてます]
- 164 名前:t mailto: >>161
主張に説得力がないって指摘がおまえまだわからないのか? あいた口が塞がらんわ [] - [ここ壊れてます]
- 165 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 22:15:54.73 ID:zs+LjqkQ.net]
- ほんと攻撃的なやつが多いな
これだからC++界隈は
- 166 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 22:23:01.28 ID:gOHxLuuk.net]
- >>132
>いずれネイティブコードを吐く C# コンパイラを出してくる すでに出とるが いつの時代の話しだ
- 167 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 23:26:27.29 ID:O9JrjuKo.net]
- C++erは献血してから書き込めよ
- 168 名前:はちみつ餃子 mailto:sage [2019/11/25(月) 00:55:16.50 ID:a5DfrA3a.net]
- >>159
ワイは Scheme 使いでもあるし日常的には Scheme の方をよく使ってはいるが、 長いことバイナリマンだったし、 LISP の思想にそんな強い思い入れはないわ。 ただ、評価とかごちゃごちゃ言ってないで手早く
- 169 名前:書いて実測しろってのは LISP 的かもね。
今では他の言語でも書きながら速いサイクルで回して改善するスタイルって一般的じゃね? 書き始めは楽観的にやってるよ。 なるべく楽して必要になってから手間かけりゃいいんだよ。 そんでもってゆるふわに富豪的プログラミングしてても割と足りてしまう経験の方がおおいなぁ。 >>156 俺は趣味人やで。 [] - [ここ壊れてます]
- 170 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 07:22:11.28 ID:Nb9YSlRo.net]
- > 富豪的プログラミング
相手してはいかんやつだったコイツ
- 171 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 10:37:33.23 ID:fJS33Jzt.net]
- >>163
これだけ広いスパン使われて、いろいろな書き方がある言語なのに ユーザーは多様性に非寛容というのはなかなか興味深い現象。
- 172 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 10:43:38.75 ID:Nb9YSlRo.net]
- いや多様な使い方を求めるからこそ
GC厨の矮小な発想範囲を危惧するんだ
- 173 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 16:07:54.78 ID:biP2ABGV.net]
- この板にまともなやつ少ないだけじゃないの
- 174 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 17:10:10.70 ID:N1T6mRww.net]
- >>170
じつは、きみが正解
- 175 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 17:43:35.94 ID:iOqWCNFx.net]
- >>170
お前はいつも正しい
- 176 名前: mailto:sage [2019/11/25(月) 19:52:15.88 ID:2aQAGKkK.net]
- >>170
説得力のあるご意見ですね…
- 177 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 20:35:32.15 ID:0R6sv3EZ.net]
- >>170
じゃあ俺もアンカつけとくか
- 178 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 20:50:09.52 ID:X/XdXIky.net]
- >>173
竹島はどこの国の領土ですか?
- 179 名前: mailto:sage [2019/11/25(月) 20:53:20.18 ID:2aQAGKkK.net]
- >>175
日本だと思っていますが?
- 180 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 20:59:20.98 ID:jiZC6v9k.net]
- >>170
この板で唯一まともな僕も赤くしておこう
- 181 名前:デフォルトの名無しさん [2019/11/25(月) 21:40:59.01 ID:p8s7YmVo.net]
- C#って、これ以上の普及はもう無理だろ。WindowsのUIアプリでしか存在価値はない。
MonoはイマイチでJavaはなくならんし、WebもAIもスクリプト言語系でOK。 タイムクリティカルなエンジン部をC++で書いて、スクリプト言語(Python含めて) 使うのが主流化してる。C#を使う場面が無い。
- 182 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 21:58:00.63 ID:YppxgWfG.net]
- Unity
- 183 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 21:58:44.19 ID:K0cOW7SD.net]
- 会社の上層部がMSの営業に騙されてAzureの導入を決めてしまった場合、
マネージドサービスの利用のためにはC#を使用せざるを得ない 他の言語では事実上使い物にならない
- 184 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 00:48:28 ID:jE+AmQNT.net]
- Windowsのデスクトップアプリを手っ取り早く作るにはC#以外の選択肢が無い
- 185 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 00:49:10 ID:FjVBoEgv.net]
- 保守的な経営者とそこそこの技術力の社員でも使えるんだからAzureというのは大したもんだな
- 186 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 03:32:39 ID:PQgL7aAd.net]
- windowsに関わってる限りC#とC++/CLIからは逃れられない
- 187 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 03:38:53 ID:jE+AmQNT.net]
- C++/CLIと関わったことがない
- 188 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 05:29:20 ID:PYT33B53.net]
- >>132
制限付きながら、既にネイティブコードは吐ける
- 189 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 05:54:06 ID:PYT33B53.net]
- >タイムクリティカルなエンジン部をC++で書いて、スクリプト言語(Python含めて)
>使うのが主流化してる。C#を使う場面が無い。 主流て、そんなもん昔からほぼこういう書き方してるだろwww そこで、スクリプト言語を使ってどれだけ実行時間に影響与えてるか正しく認識してないのが多い。 ここでC#使ってこんなに違うのかと初めて気づく。 そして、単に実行速度ってことならエンジンにC++使わずともC#でもそこそこ勝負できるってことも認識するのが情弱。 タイムクリティカルな用途ならそれこそOSからしてラウンドロビン
- 190 名前:なんか使わない。
RTOSでわざわざ、メモリプール設定してるのに、new/delete繰り返すようなC++流の書き方はそもそもよろしくない。 C++で非推奨の限りなくpure Cに近い書き方してるのはもはやC++とはいわんだろ。 [] - [ここ壊れてます]
- 191 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 07:33:35 ID:auNO4ARl.net]
- > RTOSでわざわざ(中略)C++流
そう思い込んでる迷惑なのがいるんだよ おまえみたいな
- 192 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 08:07:38.46 ID:uPJEEVDZ.net]
- タイムクリティカルもいろんなレベルがあるから
ハード実装 FPGA OSレスのフルアセンブラ RTOS + C .... クラウド
- 193 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 08:12:14.93 ID:uPJEEVDZ.net]
- > C++で非推奨の限りなくpure Cに近い書き方してるのはもはやC++とはいわんだろ。
テンプレート、ラムダ、...を使いまくるコーディングだけがC++じゃない 小規模組み込みでnewすら使わない泥臭いC++もC++
- 194 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 08:51:30.13 ID:auNO4ARl.net]
- 禿も必要な機能だけを使え、無理に全機能を使おうとするなって言ってるね
- 195 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 10:50:10.03 ID:6Teht3Z8.net]
- クラスにupdateという関数があってそれが何回もメイン関数にあるインスタンスから呼び出されるのですが
update内で変数宣言を書いている場合、領域の確保は呼び出される度に行われますか?
- 196 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 11:27:29 ID:auNO4ARl.net]
- うん
- 197 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 12:08:17 ID:GwsQnBsH.net]
- その宣言にstaticがついてなければ毎回領域確保が行われる
- 198 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 12:56:56.77 ID:BYZ9sIOZ.net]
- 変数の宣言と定義、用語の違いを利用した罠かも知れん。
- 199 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:01:29.72 ID:njyF587z.net]
- 変数自体はスタック(またはレジスタ)に割り当てられるから
確保解放のコストは気にするな 変数の内部(コンストラクタ他)でのメモリ確保解放や初期化処のコストは当然気にしよう パフォーマンスの問題であればクラス変数にする等
- 200 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:05:09.36 ID:auNO4ARl.net]
- 関数を使おうってときに
関数内変数をデータメンバに改造するアホが うちの若いのにいたら焼きだ
- 201 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:11:02 ID:njyF587z.net]
- パフォーマンスに問題があるならやるしかない
- 202 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:14:44 ID:njyF587z.net]
- バッファをあらかじめ確保しておくなんて
ごく当たり前のことだと思ってたけど そうじゃないのか? updateなんていう、 クラスの内部に直結してそうな関数ならなおさら
- 203 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:16:07 ID:XO/gVUyI.net]
- とか抜かすやつに限って計測もせずに片っ端から最適化と称した難読化をしやがる
- 204 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:18:32 ID:njyF587z.net]
- パフォーマンスの問題であれば
パフォーマンスに問題があるなら
- 205 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:20:23 ID:XO/gVUyI.net]
- >>200
パフォーマンスの問題であるなら、まずは計測する そして最適化厨が必死に難読化を施しているその箇所は、殆どの場合パフォーマンスに全く影響しない
- 206 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:23:10 ID:njyF587z.net]
- パフォーマンスを考えなくていいプログラムなら
そもそもC++を選ぶのが間違い
- 207 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:24:09 ID:njyF587z.net]
- 少なくとも質問者は気にしている
- 208 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:25:28 ID:njyF587z.net]
- パフォーマンスなのかフラグメントなのか使用リソースなのか
何を気にしてるのかはわからないけど
- 209 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:35:02 ID:XO/gVUyI.net]
- 再入やマルチスレッドで死ぬ恐れもあるから、このレベルの初心者にバッファの事前確保が当然だなどという阿呆な考えを植え付けることはテロ行為に等しい
- 210 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:14:31 ID:jE+AmQNT.net]
- 内部でnewを使ってるクラスの変数かも知れない
- 211 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:17:34 ID:GwsQnBsH.net]
- >>191はstaticがついてなければyesで終わる話
それに勝手な前提つけたしていらん押し付けをするからお前らは駄目なんだぞ
- 212 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:28:32 ID:FGS0cB19.net]
- >>207
会話するのが嫌いならわざわざ書き込まなくて良いんだよ
- 213 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:51:04 ID:jE+AmQNT.net]
- ゴミみたいな会話するな
- 214 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火)
]
- [ここ壊れてます]
- 215 名前:16:11:06 ID:FF/Zqwz/.net mailto: https://ideone.com/kprgQF
ちょっと暇だったので、 昔のビットシフトの掛け算と割り算って、 今の技術使ったら爆速になるんじゃないかと思ったのですよ。 で、書いてみたのだけど、知識不足で到達しないんだ。 なんでだろう?? [] - [ここ壊れてます]
- 216 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:15:11.65 ID:fUnM+X7O.net]
- >>202
そのプログラム全体が速度が要求される訳でもなかろう。必要なところだけ必要なぶんだけ高速化しろよ。 速度が要求されない部分も別にわざわざ別の言語で作るメリットがなければC++のままで構わないわけだし。
- 217 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:18:03.80 ID:fUnM+X7O.net]
- >>208
質問者にとっては混乱させられるだけの余分な情報だし、知っている人からすれば当たり前で価値のない情報だし、実のない議論したいだけの無意味な付け足しは要らんよ。
- 218 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:46:50 ID:FF/Zqwz/.net]
- 俺が言いたいのは一つだ。
C言語は超高等言語なので、その前にC++使うのだ!
- 219 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:39:44.76 ID:M+fYb0eE.net]
- >>211
>>203
- 220 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:59:37.88 ID:yLsU10sd.net]
- いやそもそも>>195の前半で解答は終わってるだろ
>>195の後半は余計
- 221 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 18:06:10.26 ID:M+fYb0eE.net]
- >>210
普通の型なら普通にC++で書いた方が良い 定数ならコンパイラが工夫する 普通じゃない型、例えば多倍長でも 1ビットずつシフトして速くなることは無いと思って良い
- 222 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 18:06:14.04 ID:Wuw5jSRm.net]
- >>210
>今の技術使ったら爆速に ならねーよw
- 223 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 18:52:42.91 ID:FF/Zqwz/.net]
- >>217
ならないかー。 コンパイルタイム時に置き換えるから、1サイクルに落ちるものだと・・・。
- 224 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 19:27:14.09 ID:Kb2Sko2q.net]
- 爆速にならなくても1サイクルだろうよ
- 225 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 19:41:24.45 ID:78UVTJ0X.net]
- 1サイクルじゃシフトしか出来ない
- 226 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 19:48:34.46 ID:2UYQ/Noe.net]
- なんか根本的にconstexprを勘違いしてる初心者がよくそういうこと言うけど
定数同士の計算の省略なんか大昔からある最適化だぞ C++03以前を偉そうにデイスってる奴(>>210は別として)最近多いけど、そういうのに限ってこういう基礎が全くわかってない
- 227 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 19:57:12.90 ID:dLX9Z9/K.net]
- constexprの利点はtemplateとif constexprの組み合わせがおすすめだと思うの。
- 228 名前: mailto:sage [2019/11/26(火) 20:04:28.16 ID:eitz3RWA.net]
- >>210
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51 多桁長演算の乗算・除算もやってみたかったので書いたものです
- 229 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:23:56.31 ID:78UVTJ0X.net]
- >>218を読まずに>>220を書いた
コンパイル時に解決するなら0サイクルだ
- 230 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:29:02.34 ID:78UVTJ0X.net]
- よく分からない多倍長ライブラリを使うのであれば
当然コンパイル時に解決出来るとは限らない
- 231 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:32:56.90 ID:sE/nea3J.net]
- >>223
多倍長の乗算は筆算の要領で出来るの算数程度の数学で足りるが、 多倍長の除算は、CPUが持っている除算命令を使って行おうとすると 数学的な考える力が必要になる。アルゴリズムは既に有ることはあるはずだが、 丁寧に解説されているわけではないので自分の力で証明できるくらいの 人で無いと難しいと思う。
- 232 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:35:31.27 ID:78UVTJ0X.net]
- >>226
素人が適当な事を言わない方が良いかと
- 233 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:39:17.37 ID:78UVTJ0X.net]
- 多倍長の乗算は、
非常に桁数が少ないときのみ筆算方式 もうちょっと大きいとカラツバ もっと大きいとフーリエ変換 除算はニュートン法が一般的かと もちろん、 特殊な形だと特殊な方法があったりする
- 234 名前: mailto:sage [2019/11/26(火) 20:47:20.16 ID:eitz3RWA.net]
- >>226
それは乗算と除算が逆なのでは? 除算は筆算流しか手はありません、乗算はいろいろなやりかた(カラツバ・FFT)があるようです
- 235 名前: mailto:sage [2019/11/26(火) 20:48:04.78 ID:eitz3RWA.net]
- >>228
>除算はニュートン法が一般的かと ニュートン法で剰余を求めることはできますか?
- 236 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:49:49.76 ID:78UVTJ0X.net]
- >>230
そりゃ当然出来ますよ 桁数が大きいときは、 除算は乗算の3倍程度の時間で出来ます
- 237 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:51:56.72 ID:78UVTJ0X.net]
- 除算を筆算方式なんかでやってたら日がくれる
- 238 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:54:28.73 ID:78UVTJ0X.net]
- 分子の桁数が大きくて分母の桁数が非常に小さい場合のみ筆算方式が有効
この場合も、 非常に遅い割り算命令なんかは使いませんが
- 239 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:56:28.50 ID:sE/nea3J.net]
- >>229
>除算は筆算流しか手はありません そうではありません。除算をCPUにある除算命令を使った筆算で行うには、x/y の xのBIT数を増やすのは容易ですが、yの方のBIT数を増やすのは非常に難しいのです。 不可能では有りませんが、非常に数学的な注意が必要となります。 私は数学マニアみたいなものなので、自分なりのアルゴリズムを作ったことが ありますが、個人的には、それをするためにはテーラー展開の剰余項や解析学的な 知識が必要だと思っています。 考えもしませんでしたが、他にも除算は、ニュートン方を使う流儀もあるそうです。
- 240 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 20:58:37.06 ID:sE/nea3J.net]
- >>233
いえ、そうでもありません。テーラー展開の剰余項を注意深く扱うと、 CPUがもつdiv命令を使った筆算の場合でも、x/y の y の方のBIT数を 増やすアルゴリズムがありえます。何度も書いてますが、それは数学的に とても慎重さを必要とします。
- 241 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:00:22.71 ID:sE/nea3J.net]
- >>235
ただし、ニュートン法を使う方法については考えたことがなかったので、 どっちが効率が良いかは分かりません。
- 242 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:03:02.62 ID:78UVTJ0X.net]
- >>235
普通のPCのDIV命令は30サイクル近くもかかる 乗算は1〜4サイクル スーパーコンピューターでも除算は非常に遅い >>233の条件では 除算命令などは使わない方が速い 除算は乗算に置き換えるのが普通
- 243 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:04:44.09 ID:78UVTJ0X.net]
- 分母、分子それぞれの桁数によって
最適な方法は変わる だからそういった条件をセットで語らないと意味がない
- 244 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:06:41.35 ID:78UVTJ0X.net]
- 巨大な桁数同士だとニュートン法が速い
乗算の3倍ほどの時間で出来る 割り算を組み合わせたらそんな時間では計算出来ない
- 245 名前: mailto:sage [2019/11/26(火) 21:15:26.74 ID:eitz3RWA.net]
- >>231
ニュートン法(にゅーとんらぷそん)って、曲線で与えられる関数の根の一つを求める方法でしょ? いわゆる実数の根を求める方法であって、整数の剰余を求めることはニュートン法では無理なのでは? 何がどうなって「当然」なんですか?
- 246 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:19:25.20 ID:78UVTJ0X.net]
- 除算が出来るんだから剰余も当然求められる
- 247 名前: mailto:sage [2019/11/26(火) 21:22:34.40 ID:eitz3RWA.net]
- >>241
で、その剰余はどうやって求めるのですか? まさか、求めた商に除数をかけて被除数から引くのですか?それって遅くないですか?
- 248 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:23:39.77 ID:78UVTJ0X.net]
- 遅くないです
- 249 名前: mailto:sage [2019/11/26(火) 21:25:15.97 ID:eitz3RWA.net]
- >>243
本当ですか?わざわざ、あらためて掛け算をするんですよ?私には馬鹿みたいな方法にみえますが?
- 250 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:26:45.06 ID:78UVTJ0X.net]
- 馬鹿みたいな方法にみえるのはあなたが馬鹿だからです
- 251 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:29:07.44 ID:sE/nea3J.net]
- >>242
ニュートン法なので、 z = b / a の z を求めたい場合、直線 y = a * x - b と x 軸(y=0) との交点の x を求めることによって行う。その際、x0, x1, ・・・, xn のように x を 漸化的に交点に近づけて
- 252 名前:いく。数学的直感だと、その途中で剰余も求められ
るように出来そうな気がする。 [] - [ここ壊れてます]
- 253 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:43:45.68 ID:sE/nea3J.net]
- >>246
色々なやり方はあると思うけど、2^m <= a < 2^(m+1) の場合、 x_{k+1} = x_k - (y_k << m); y_{k+1} = a * x_{k+1} - b; の漸化式でいけるかも知れない。 間違っていたらゴメンなさい。
- 254 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:44:43.61 ID:78UVTJ0X.net]
- >>246
その方法で乗算の3倍の時間で除算が出来ますか? 無理ですよね?
- 255 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:49:53.94 ID:sE/nea3J.net]
- >>248
漸化式が三回くらい行ったら正しい答えに到達するのであれば、 乗算の三倍程度の時間で済むと思う。 何回で到達するかは、まだ考えて無いのでわからない。
- 256 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:53:39.27 ID:sE/nea3J.net]
- >>247
ここで、0<= y_k < x_k が満たされれば、x_k が商、y_k が余りだと思う。 初期条件は、 x_0 = 1; y_0 = a * x_0 - b; とすればよいはず。 途中、y_k が負の値になることが有るが、問題ない。
- 257 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:55:42.20 ID:78UVTJ0X.net]
- 前提は分母も分子も巨大な桁数で良いんだよね?
- 258 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:56:38.32 ID:78UVTJ0X.net]
- 分母の桁数があまり大きくないならテーラー展開も有効だよ
- 259 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:57:23.51 ID:sE/nea3J.net]
- >>251
一般的な場合を取り扱うのであれば、その条件が、もっともらしいと思います。
- 260 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 21:57:37.73 ID:78UVTJ0X.net]
- いずれにしろ、
除算命令を多用することは無い
|

|