不懂幾何者慎入

Description
古希臘柏拉圖學院的門口豎着一塊牌子"不懂幾何者慎入"。Julyana是一個超級大學霸,作爲一個去過古希臘柏拉圖學院的人(夢裏經常去),她經常去幫她的學弟學妹們解決一些數學難題。這次一位高中的小學弟給Julyana提出了一個幾何問題,可是Julyana太忙了,只能讓你們這些從高中畢業不久的童鞋們幫他來解決了。題目如下:有一正四棱柱,給出底面(即正方形面)邊長a和側面(即矩形)邊長b,讓你求出底面對角線和側面對角線的最短距離L(注:底面對角線與側面對角線沒有交點)。圖如下:




Input
輸入一行T(T<=500),代表樣例數。
接下來T行,每行兩個整數,底面邊長a(0<a<=1000),側面邊長(0<b<=1000)。


Output
對於每個樣例,輸出一個實數L,代表最短距離(保留4位小數)。

Sample Input
1
1 1


Sample Output
0.5774


這道題就是簡單的高中計算異面直線的距離。

根據公式(AB*n)/|n|爲異面直線的距離,首先設異面直線的公共法向量n=(x,y,z).之後代入公式即可~~~

代碼如下:

#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
    int t,a,b;
    cin >> t;
    while(t--)
    {
        cin >> a >> b;
        double p=sqrt((1.0*a*a)/(b*b)+2);
        printf("%.4lf\n",1.0*a/p);
    }
    return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章