涉及一些線性代數的知識。
如果四點共面,利用這4個點產生3個向量,只要這3個向量包含全部4個點,則這3個向量共面,意味著這3個向量線性相關,那麼這3個向量構成的3*3的矩陣
a 秩虧缺,即四點
共面⟺三
向量共面
⟺ran
k(a)
<3⟺
det(
a)=0
所以只需檢查矩陣的行列式是否為0,即可判斷四個點是否共面。
#include
#define for(i, a, b) for(int i=a; iusing
namespace
std;
int main()
}//得到三個向量,構成矩陣
for(i, 0, 3)
}//計算矩陣行列式
int det = 0;
for(i, 0, 3)
det += tmp;
}for(i, 0, 3)
det -= tmp;
}if (det)
cout
<<"no"
cout
<<"yes"
0;}
51nod1265四點共面
原題鏈結 四點共面即以某點指向其它三點的向量的混合積為0 如下 include include include include include include include include include include include include define ll long long us...
51Nod 1265 四點共面
1265 四點共面 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出三維空間上的四個點 點與點的位置均不相同 判斷這4個點是否在同乙個平面內 4點共線也算共面 如果共面,輸出 yes 否則輸出 no input 第1行 乙個數t,表示輸入的測試數量 1 t 1000 ...
51nod1265 四點共面
傳送門 點我 給出三維空間上的四個點 點與點的位置均不相同 判斷這4個點是否在同乙個平面內 4點共線也算共面 如果共面,輸出 yes 否則輸出 no input 第1行 乙個數t,表示輸入的測試數量 1 t 1000 第2 4t 1行 每行4行表示一組資料,每行3個數,x,y,z,表示該點的位置座標...