寒假練習 07

2022-05-27 22:03:16 字數 2304 閱讀 8160

斷斷續續終於刷完了計算幾何專題,感覺太麻煩,小錯誤不斷,尤其是精度問題。還有輸出問題,有時候printf比cout要方便。

給出正方形的一組對角座標,求另外兩個座標,用三角函式推到公式。

不妨設兩點為a(x1, y1), c(x2, y2),則中點為g((x1 + x2) / 2, (y1 + y2) / 2),對角線長度為l = sqrt((x1 - x2)^2 - (y1-y2)^2)。

設直線ac與x軸的夾角為α,則sinα = (y2 - y1) / l,cosα = (x2 - x1) / l。

則另外兩個座標分別為b(gx - l * sinα / 2, gy + l * cosα / 2),d(gx + l * sinα / 2, gy - l * cosα / 2)。

#include #include #include using namespace std;

struct point

;int main()

return 0;

}

時鐘每小時走30°,分鐘每分鐘走6°,模擬即可。

#include #include using namespace std;

int main()

if(h == 12)

double dangle = (h * 30.0 + m / 2.0) - m * 6.0;

if(dangle < 0)

if(dangle > 180)

printf("%.3f\n", dangle);

} return 0;

}

等腰三角形內接圓直到半徑小於1e-6,根據幾何關係推得半徑r = tan(arctan(2 * height / width) / 2) * width / 2。

#include #include using namespace std;

const double pi = 4.0 * atan(1.0);

int main()

printf("%13.6lf\n", 2 * pi * dsum);

if(i != t)

} return 0;

}

根據幾何關係,速度v = l / t,角度為arctan(y / x) * 180 / pi。

#include #include #include using namespace std;

int main()

double x = a * m, y = b * n;

double l = hypot(x, y);

cout << fixed << setprecision(2) << atan(y / x) * 180.0 / pi << " " << l / s << endl;

} return 0;

}

uvaoj 10112

列舉各個點,判斷是否滿足條件,求三角形面積可以使用三階行列式,判斷點是否在三角形內可以使用s△abc=s△abd+s△acd+s△bcd來判斷。

#include #include #include using namespace std;

const int max = 128;

struct tri

;tri ptri[max];

double fabs(double x);

double area(int i, int j, int k);

bool check(int i, int j, int k, int npos);

string solve(int n);

int main()

cin.ignore();

for(int i = 1; i <= n; i++)

cout << solve(n) << endl;

} return 0;

}string solve(int n)

for(int k = 1; k <= n; k++)

int npos;

for(npos = 1; npos <= n; npos++)

if(check(i, j, k, npos))

}if(npos == n + 1 && area(i, j, k) > dmax)

}} }

return strans;

}double area(int i, int j, int k)

bool check(int i, int j, int k, int npos)

終於把小白書第一部分的推薦題目刷完了,總計65道。

寒假學習記錄07

寒假學習記錄07 1 掌握 linux 虛擬機器的安裝方法。spark 和 hadoop 等大資料軟體在 linux 作業系統上執行可以發揮最佳效能,因此,本教程中,spark 都是在 linux 系統中進行相關操作,同時,下一章的 scala 語言也會在 linux 系統中安裝和操作。鑑於目前很多...

習題練習07

實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部分將被捨去。param x...

寒假練習 Master Mind Hints

樣例 sample input 41 3 5 5 1 1 2 3 4 3 3 5 6 5 5 1 6 1 3 5 1 3 5 5 0 0 0 0 101 2 2 2 4 5 6 6 6 9 1 2 3 4 5 6 7 8 9 1 1 1 2 2 3 3 4 4 5 5 1 2 1 3 1 5 1 6...