# -0.9944739914064586 +0.1049832387388906j
# -0.9944739914064585 -0.10498323873889079j
本題答案的排序方式,應先排序後再4捨5入,或4捨5入後再排序。
上面是 line 23 及 line 24 的output
# -0.9944739914064586 +0.1049832387388906j
# -0.9944739914064585 -0.10498323873889079j本題答案的排序方式,應先排序後再4捨5入,或4捨5入後再排序。
上面是 line 23 及 line 24 的output
已補強題目敘述。
依現在的敘述 line 23 就不對了
我覺得應該是在排序時小數點的誤差造成錯誤。
我的作法是從 k = n / 2 到 k = 0,每次輸出 cos (2*pi*k/n), -sin (2*pi*k/n) 與 cos (2*pi*k/n), sin (2*pi*k/n),然後 k = n / 2 時和 k = 0 時特判,這樣可以保證 a 遞增,若 a 相同時 b 遞增。
而第一筆測資 n = 687,執行您的程式碼後會跑出下列的結果:
在第 23, 24 筆的 a 是相同的,b 應該要先輸出負的再輸出正的,所以我認為發生錯誤的原因是兩個理當相同的 a 在運算時小數點後面有誤差,所以才會造成排序時把大的排在前面。
這邊有更詳細的運算結果: