推 PianoSpirit:恩..謝謝您 04/28 10:21
※ 引述《PianoSpirit (琴鍵)》之銘言:
: 最近需要寫一份程式,必須可以運算複數的程式。
: 由於VB似乎沒有內建複數的這種資料型態。
: 所以我就新增一個模組自訂資料型態 Complex:
: Type Complex
: r As Single
: i As Single
: End Type
<<中間吃掉>>
: 問題來了,由於之後的運算需要計算複數的n次方
: 我現在只會在表單中用下面這樣(例如運算複數x的n次方),
: 可是感覺不好,因為n越大就要運算越多次
: Dim t as Complex
: Dim k as Integer
: t = x
: For k = 1 to n-1
: t = Multiply(x,t)
: next k
: 請問各位有沒有其他方法,或是能直接在模組內設Function就好?
: 如果是你們會怎麼寫呢?
方法一
先展開 (A+Bi)^n
= C(n,0)(A)^n + C(n,1)(A)^(n-1)(Bi) + C(n,2)(A)^(n-2)(Bi)^2 + ...
+ C(n,n)(Bi)^n
方法二
轉換成極座標
A+Bi = r(cosθ+sinθi)
則 (A+Bi)^n = r^n * (cosθ+sinθi)^n
= r^n * (cosnθ + i sinnθ)
其中 r = ( A^2 + B^2 ) ^0.5
θ= cosinverse(A/r)
但 說實在的 這兩種方法還是沒有自己乘自己乘 n 次來的簡單明瞭
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.213.46