- 685 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 19:35:09 ]
- >>680
#include <stdio.h> #include <stdlib.h> void multiply(int *mat, int *vec, int *out, int N) { int i, j; for (i = 0; i < N; i++) { out[i] = 0; for (j = 0; j < N; j++) { out[i] += mat[i*N+j] * vec[j]; } } } int main(void) { int i, k, N = 3, n = 10; int *v = (int *)malloc(N * sizeof(int)); int *t = (int *)malloc(N * sizeof(int)); int *P = (int *)malloc(N * N * sizeof(int)); v[0] = 3; v[1] = 4; v[2] = 5; P[0] = 1; P[1] = -2; P[2] = 2; P[3] = 2; P[4] = -1; P[5] = 2; P[6] = 2; P[7] = -2; P[8] = 3; for (k = 1; k <= n; k++) { multiply(P, v, t, N); for (i = 0; i < N; i++) { v[i] = t[i]; } printf("v_%d = (%d, %d, %d), ", k, v[0], v[1], v[2]); printf("v1^2 + v2^2 - v3^2 = %d\n", v[0]*v[0]+v[1]*v[1]-v[2]*v[2]); } free(v); free(t); free(P); return 0; }
|

|