亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的 SSS 三角形解算器給出完全錯誤的答案?

為什么我的 SSS 三角形解算器給出完全錯誤的答案?

犯罪嫌疑人X 2023-10-12 14:48:06
因此,我接到了一個項目,其中我必須編寫一個 Java 程序,以返回三角形三邊之間的角度,并將這三個邊作為方法的參數。我們可以使用一個數學公式來導出一個方程,稱為余弦定理,給定三角形 a、b 和 c 的邊,c^2 = a^2 + b^2 - 2ab * cos(C) 其中 C 是邊 a 和 b 之間的某個角度。我們可以分離角度 C 并得到方程arccos((-c^2 + a^2 + b^2) / 2ab) = C。數學很簡單,并且很容易在 Java 中實現,但是當我輸入邊 3、4、5(應產生 90、30、60)的輸出時,我得到角度 53.130102、36.86989、90.0。這些絕對不是畢達哥拉斯三元組的角度,如 3、4、5。有誰知道我哪里出錯了?代碼:import static java.lang.Math.sqrt; import static java.lang.Math.acos; import static java.lang.Math.pow;import static java.lang.Math.PI;class Main {  public static void main(String[] args) {    anglesFinder(3, 4, 5);  }  public static void anglesFinder(int a, int b, int c) {    double alpha;    double beta;    double gamma;    alpha = (double) Math.acos((Math.pow(b, 2) + Math.pow(c, 2) - Math.pow(a, 2)) / (2 * c * b));    beta = (double) Math.acos((Math.pow(a, 2) + Math.pow(c, 2) - Math.pow(b, 2)) / (2 * a * c));    gamma = (double) Math.acos((Math.pow(a, 2) + Math.pow(b, 2) - Math.pow(c, 2)) / (2 * a * b));     System.out.println("angle between a & b is: " + (beta * (180 / Math.PI)));    System.out.println("angle between a & c is: " + (alpha * (180 / Math.PI)));    System.out.println("angle between b & c is: " + (gamma * (180 / Math.PI)));  }}
查看完整描述

1 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

你的程序是正確的,但你的程序是錯誤的。對于(比例)長度為 1、sqrt(3)/2(約 0.866)和 2 的直角三角形,預計角度為 30、60 和 90 度,但不能縮放到長度 3、4、和 5.

我的計算器對于 53.130102 度的余弦給出大約 0.6,對于 36.86989 度的余弦給出大約 0.8,這與長度 3、4 和 5 匹配。


查看完整回答
反對 回復 2023-10-12
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號