c語言怎麼表示向量
『壹』 c語言能否定義向量,怎樣定義
C語言不支持向量;
可以自己定義結構體,用兩個坐標來表示或輻角表示
『貳』 用隨機數產生一個空間單位向量(向量的方向是隨機的)怎麼用C語言實現
你這里有個限制...就是單位向量..也就是模不變....加了一個約束,自由變數從三個變成2個了。。。
想想極坐標如何表示空間一個點的:點到遠點的距離,也就是模。。。和另外兩個軸的夾角..(找找極坐標積分公式就想起來了)。
所以,你只要生成一個范圍是(-π/2,π/2)的和xy平面的Z的夾角 t2,一個0~2π的xy平面上和x軸的夾角t1...再計算坐標值即可。。。。
x= cos(t1) * cos(t2) * r
y= sin(t1) * cos(t2) * r
z= sin(t2)* r
r = 1....
或者等價的,先生成 一個-1 ~1的隨機變數x,然後生成一個在 - sqrt(1-x^2) ~ sqrt(1-x^2)之間的y,然後z就是等於正負sqrt(1-x^2-y^2)。。這里取正負號不太方便,還得用隨機方式,不方便...
不如用第一種方式..兩個隨機變數不相關..方便...
怎麼取到特定范圍的隨機數...你自己找資料吧..
『叄』 C語言數據結構中的向量的具體定義是什麼怎麼使用最重要的是使用。誠請高手出來交流學問!
向量一般用二維的坐標表示 你可以直接用坐標點表示 終點減起始點(end start)
我這里給你結構體的表示方法
struct Point
{
double x;
double y;
};//坐標表示
struct Vactor
{
point start;
point end;
};//向量 表示
向量在實際運用舉例
double proct (V*v1)
{
V vt1,vt2;
vt1.strat.x=vt1.start.y=0;
vt1.end.x=V1->end.x-v1->start.x;
vt1.end.y=V1->end.y-v1->start.y;
////////////以下可以寫自己設計的演算法函數
}
你可以嘗試運用此方法求個點積 引申 進而判斷線與線 面與面的關系
『肆』 C語言的概述提到位元組和變數還有向量是什麼意思
位元組表示大小,在計算機中存儲的最小單位就是位元組
變數表示在程序編寫過程中需要用到的中間值
向量就是數學中的概念了,用不同的C語言代碼可以實現向量的基本操作
『伍』 編寫一個C語言創建向量的void函數
#include<stdio.h>
#include<stdlib.h>
typedefstruct{
intn;
double*value;
}Vector;
voidcreatevector(Vector*x,intn){
x->n=n;
double*value=malloc(sizeof(double)*n);
x->value=value;
}
voiddeletevector(Vector*x){
free(x->value);
}
intmain()
{
intn,i;
Vector*temp=malloc(sizeof(Vector));
printf("n=");
scanf("%d",&n);
createvector(temp,n);
for(i=0;i<n;i++){
scanf("%lf",temp->value+sizeof(double)*i);
}
printf("%d ",n);
for(i=0;i<n;i++){
printf("%lf ",*(temp->value+sizeof(double)*i));
}
deletevector(temp);
free(temp);
return0;
}
『陸』 怎麼用C語言實現向量操作
//使用動態分配
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
inti,L;
char*p;
voidmain(){
for(i=0;i<20000;i++){
L=rand();
p=malloc(L);
if(NULL==p){
printf("mallocerror! ");
continue;
}
memset(p,0,L);
free(p);
}
}
//不使用動態分配
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
#defineMAXLEN30000
inti,L;
charbuf[MAXLEN];
char*p;
voidmain(){
p=&buf[0];
for(i=0;i<20000;i++){
L=rand();
if(L>MAXLEN){
printf("L>MAXLEN==%d,ignorespilth. ",MAXLEN);
L=MAXLEN;
}
memset(p,0,L);
}
}
『柒』 請問C語言及數據結構中的向量具體表示什麼意思
支持通過位序訪問元素的線性序列都可以稱為向量。位序類似於數組下標,但我們只能說數組只是向量的一種具體實現,而不能說向量就是數組,實現向量還有其他方法。向量的英文單詞就是vector,很顯然,vector類就是向量的一種實現,所以你可以通過學習vector這個類來理解向量的特徵。
『捌』 如何用c語言編輯特徵向量
學數學的?
你會用matlab工具嗎?這個工具要是去寫這個程序就會好些多了!
給你個別人寫的程序看看吧!
對你有幫助!
#include <iostream.h>
#include <math.h>
#define N 3
void matrixx(double A[N][N],double x[N],double v[N])
{
for(int i=0;i<N;i++)
{
v[i]=0;
for(int j=0;j<N;j++)
v[i]+=A[i][j]*x[j];
}
}
double slove(double v[N])
{
double max;
for(int i=0;i<N-1;i++) max=v[i]>v[i+1]?v[i]:v[i+1];
return max;
}
void main()
{
//data input
double A[N][N]={1.0,1.0,0.5,1.0,1.0,0.25,0.5,0.25,2.0};
double x[N]={1,1,1};
double v[N]={0,0,0};
double u[N]={0,0,0};
double p[N]={0,0,0};
double e=1e-10,delta=1;
int k=0;
while(delta>=e)
{
for(int q=0;q<N;q++) p[q]=v[q];
matrixx(A,x,v);
for(int i=0;i<N;i++) u[i]=v[i]/(slove(v));
delta=fabs(slove(v)-slove(p));
k++;
for(int l=0;l<N;l++) x[l]=u[l];
}
cout << "迭代次數" << k << endl;
cout << "矩陣的特徵值" << slove(v) << endl;
cout << "(" ;
for(int i=0;i<N;i++) cout << u[i] << " " ;
cout << ")" << endl;
}
『玖』 C語言程序:請定義一個表示向量(即一個整數系列)的結構體,並編寫一個模塊化的程序來完成以下任務
#include<stdio.h>
struct vect
{
int v1;
int v2;
int v3;
};
void a(struct vect *v,int n)
{
v->v1=(v->v1)*n;
v->v2=(v->v2)*n;
v->v3=(v->v3)*n;
}
main()
{
struct vect myvector;
myvector.v1=10;
myvector.v2=20;
myvector.v3=30;
printf("(%d,%d,%d)\n",myvector.v1,myvector.v2,myvector.v3);
a( &myvector ,5);
printf("(%d,%d,%d)\n",myvector.v1,myvector.v2,myvector.v3);
getch();
}
『拾』 c#怎麼表示一個向量,及兩個向量的叉乘
只有三維向量定義叉積運算,其他維數的向量沒有叉積。
把課本上的分量表示用兩個三維數組表示,實現即可。
