- ベストアンサー
かけ算に関してのアルゴリズム
アルゴリズムに関して全くの初心者なので、お力を貸してくれると幸いです。 タイトルにもありますが、かけ算を使ってのアルゴリズムですが、足し算なり、引き算なりを使ったほうが効率がいいのですが、どのようにすればいいのか悩んでおります。 x=a*b-c*c+bd y=b*b-cc+a*d と全部で6つののかけ算があります。 新しい変数(例えば、temp=c*c のような)を作ってもかまいませんので、 かけ算の使用回数を3回までに押さえたいのです。 私が考えたのは、 x=b(a+d)-temp y=b(b+a)-temp+a(d-b) ほかに効率の良いアルゴリズムはありますでしょうか? よろしくお願いします
- みんなの回答 (17)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 計算の順序 a×b÷c
小学生の算数で, たし算,ひき算は,かけ算,わり算より先 たし算と,ひき算が,又は,かけ算,わり算が, 複数ある時は,普通,左からと習います。 しかし, たし算だけ, かけ算だけなら,どこからでも計算できます。 a×b÷c は,b÷cを先に計算することは,できますか? いくつか,問題を作って解いてみましたが, a×bを先に計算した時と,答えが同じになりました。 よろしくお願いします。
- 締切済み
- 数学・算数
- 数学orアルゴリズムが得意の方(線分と線分の交点判別)
C言語のアルゴリズムを勉強中です。 線分A(A(x1,y1),B(x2,y2))と線分B(C(x3,y3),D(x4,x4))が交差するかどうかを判別し、交差するのであればその交点P(X,Y)を求める。 また、その交点がどちらか一方の線分上にあるかどうかも判別したいのです。 一番効率よくやるにはどのようにすればよいでしょうか。 例えば 1、三角形の符号付き面積を使って交差するかどうかと各点が線分上にあるかどうかを判別し、その後交点を求める 2、とり合えず交点を求めてその交点が各線分内(上)にあるかどうかを判別 他にもたくさんありそうですがとにかく出来るだけ計算回数を減らしたいのです。(さっき求めた~~を~~するといったかんじで) 出来れば流れ全体を書いていただきたいのですが書き込むのが大変だと思うのでせめて使う判別式だけでも教えてください。 これが出来たら、 多角形と多角形の交点判別のアルゴリズムにも挑戦しようと思っています。 数学の得意な方、アルゴリズムを考えるのが好きな方 よろしくお願いします。
- ベストアンサー
- 数学・算数
- 直線を描くアルゴリズムが解りません(T_T)
直線を描くアルゴリズムを教えて下さい。 直線の公式はわかるのですが、これからどうやって発展させていけばよいのか検討がつきません。 yの方が傾きが大きいのでyが常にインクリメントされるのはわかります。 xはどうやって判断するのでしょうか? (aは傾き、bは切片) y = ax + b 始点(3,3)終点(5,7) 7y-3y = 4 5x-3x = 2 ------------------------- a = 2 3 = 2*3 + b -> -3 = b 7 = 2*5 + b -> -3 = b --------------------------- b = -3
- 締切済み
- C・C++・C#
- 掛け算と割り算の順番
社会人ですが、SPIの試験で久しぶりに計算に取り組んでいる中で、 掛け算と割り算の順番について、どうだったかな?と思うところがあったので、 教えてください。 <1>20×10÷2 (a)(20×10)÷2=200÷2=100 (b)20×(10÷2)=20×5=100 (a)でも(b)でも同じですよね。 <2>20÷10×2 (a)(20÷10)×2=2×2=4 (b)20÷(10×2)=20÷20=1 (b)が間違っているのは分かります。 上記のように、具体的な数字でしかも単純な数字なら、 わざわざ(b)のような間違いはしません。 たまたまaやx(エックス)といった変数が入り、かつ数字も面倒な数字だったため、 なぜか掛け算や割り算は順序を入れ替えても良いと思ってしまって、 (b)のような解き方をしてしまいました。 例えば、360a ÷60b ×6 こういう式があると心情的に60×6が360だから消せる! と思ってしまったり(すいません、実際に疑問に思うきっかけになった式を忘れました)。 <2>で÷10を×1/10に直せば、間違えようがない、ということなのでしょうが、 学生時代、こんなこと疑問に思ったことがないということは、 基本的なルールをド忘れしているのかなと思いますので、 僕が<2>の(b)について、どんなルールを忘れたために間違ってしまったのか、 教えていただけませんでしょうか? 実際には変数が入ってきたり、小数やら分数が混じるからこそ、 左から右ではなく、効率的にできるところはしたいなという考えが起きてしまいます。
- ベストアンサー
- 数学・算数
- 分岐処理(アルゴリズム)
C言語の初心者です。 C言語の分岐処理の書き方(アルゴリズム)について 分からない事があり質問しました。 A、B、C、Dという変数があり、 この変数にはランダムに、ある浮動小数が代入されます。 A、B、C、Dの値を比較して、 (1)一番小さい値が存在する場合 (2)一番小さい値が2つ存在する場合 (3)上記以外の場合 といったように場合分けを行い、 (1)一番小さい値をディスプレイに表示。 (2)アルファベット順で早い方 (Ex. AとBならA、但しDとAの場合はD) をディスプレイに表示。 (3)Aをディスプレイに表示。 といったように、場合分けによってそれぞれ 処理を行いたいのです。 条件を&&や||で増やせばできると思うのですが、 端的に書くにはどうしたらよいか悩んでいます。 よろしくお願いします。
- 締切済み
- C・C++・C#
- 乗積 Π のアルゴリズム
はじめまして。 質問内容が表題と多少ズレる事をご承知下さい。 アルゴリズムを教えて頂きたいと思っています。 ************************ Π(2x-1) ,x=1~m 上式においてm=3とすると、総数は15となります。 今、A~Fまで6つのアルファベットがあります。 このうち2つをペアにしてグループを作ります。 上式により、グループ総数は15となります。 ペアの組み方は以下のようになります。 <例> (1) A-B、 C-D、 E-F (2) A-B、 C-E、 D-F (3) A-B、 C-F、 D-E ・ ・ ・ (14) A-F、 B-D、 C-E (15) A-F、 B-E、 C-D ************************ このような取り方をプログラムしようと思うのですが どこから手をつけてよいかわかりません。 是非アドバイスをお願いします。
- ベストアンサー
- Visual Basic
お礼
ありがとうございました。上記のやり方を教授に見せたら、なんか知りませんが、ほめられました。きっと、教授の思ってたことと違うやり方だったみたいでしたが、考え方はあってたので、大丈夫みたいです。