2011-10-30 4 views
0
// Write a program to calculate the innerproduct of two arrays (ip of v,w = sum, for all i, of vi*wi) 

var v = [1, 2, 3, 'x']; 
var w = [1, 2, 3, 4]; 
vSum_total = 0; 
wSum_total = 0; 

// calculate sum of v 
for(i=0; i<v.length; i++) 
{ 
    if (isNaN(v[i])) 
    v[i] = 0 
    else 
    vSum_total += Number(v[i]); 
} 

// calculate sum of w 
for(i=0; i<v.length; i++) 
{ 
    if (isNaN(v[i])) 
    v[i] = 0 
    else 
    wSum_total += Number(w[i]); 
} 

alert ("Total of v: " + (vSum_total)); 
alert ("Total of w: " + (wSum_total)); 
alert ("Inner product: " + (vSum_total * wSum_total)); 

Я пытаюсь вычислить скалярное произведение массива, но мой результат не предупреждает. Любые намеки в правильном направлении были бы действительно оценены!Вычисление скалярного произведения массива

+2

Глупый вопрос: есть ли 'vSum_total', инициализированный значением' 1'? –

+2

BTW, вычисляя «внутренний продукт», требуется два вектора, а не один –

+2

что такое 'vSum'? вы имели в виду только 'v' –

ответ

3

С ВСУМОМ начинается как 0, если умножить его на любом числе он остается 0.

+0

'vsum' действительно начинается с 0. Но OP использует' vSum_total'. –

+0

Предполагается, что vsum_total является vsum и что вы добавляете v [i] в ​​общий, а не vsum [i]. – NickLH

+0

Код не имеет никакого смысла ... – NickLH

2
var vSum = 1; 

var v = []; 
v[0] = parseInt(prompt("v0:")); 
v[1] = parseInt(prompt("v1:")); 
v[2] = parseInt(prompt("v2:")); 
v[3] = parseInt(prompt("v3:")); 

// calculate ip of v 
for(i = 0; i < v.length; i++) 
{ 
    vSum *= v[i]; 
} 

alert(vSum); 
+1

Пояснения лучше, чем наброски кода. Фрагменты кода - отличный способ украсить сообщение, но объяснение того, что ОР сделал неправильно, - лучший способ предоставить ответ. –

+0

Да, я должен был добавить объяснение. – michaeljdennis

1

vSum должен быть v (или наоборот).

Вы пытаетесь использовать целое число, например массив, поэтому ваш скрипт прерывается.

Включите ваш отладчик.

+0

Не говоря уже о том, что такое vSum_total? Это даже определено где угодно. – Joe

+0

@IAbstractDownvoteFactory: Действительно –

Смежные вопросы