求空间向量的垂直向量
已知一个空间向量, (x, y ,z),
求出一个与(x, y, z) 垂直的空间向量 (a, b, c)
请教各位, 谢谢!
[解决办法]
int a[10];// 存放一个向量
int b[10];//存放另一个向量
for(int i=0; i <lenofver; i++)//lenofver向量长度
if(a[i]) break;
if(i==lenofver)
{
printf( "任一个向量都于所求向量垂直 ");
return ;
}
for(int j=0; j <lenofver; j++)
{
if(i!=j) b[j]=1;
}
int sum=0;
for(int k=0; k <lenofver; k++)
{
if(i!=k) sum += a[k]*b[k];
}
b[i] = -sum/a[i];
大体如此,变量类型可能要改变一些。
思路如下:
1.在第一个向量中找到一个不为0的数a[i],如果全为0,则这个向量为0向量,作何其它一个向量都和其垂直。
2.令b中除了b[i]外全置为1(这个数可以变).b[i]=0;
3.求出sum = a*b;i是a 中的一个不为0的数的下标
4.b[i]=-sum/a[i];
[解决办法]
>和一个向量垂直的向量是有无数个的,一个向量无法确定和他垂直的向量。这从数学的理论上就不可能,更何况用编程实现
乃鸡冻了。lz没说找出所有。只说求出一个。