2011-11-03 232 views
1

我在介紹性的JavaScript課程,最近開始學習矩陣。我被分配了一個問題來解決,但我仍然很難繼續。從矩陣中,我需要創建一個Z形式,然後使用Z數據完成任務。是用於分配的基本參數如下:Javascript矩陣混淆

聲明一個8×8矩陣和長度22的陣列(聲明您在算法使用任何其他變量)

  1. 填充矩陣。
  2. 複製矩陣,反對角線,和所述矩陣的最後一行到所述陣列的所述第一行的元素。 (我們稱之爲類在基質中的Z)
  3. 排序陣列。
  4. 假設數組中的數據是等級,計算存儲在數組偶數位置的等級的平均值。
  5. 複製陣列回矩陣。(回Z)
  6. 打印出來的矩陣值。

根據我的講義,我能夠放在一起這樣的代碼:

Var k=0; 
Var j=0; 
Var i=0; 
Var x=0; 

for (k=0;k<8;k++){ 
    x[j]=mat[i][k] 
    j=j+1 
} 

var x = new array (22); 
j=8; 
k=j; 
for(i=1;i<7;i++){ 
    k[j]mat[i][k]; 
    j=j+1; 
} 

var mat=new array (8); 
i=7 
for(i=0;1<21;i=i+1){ 
    for(k=i+1;k<22;k=k+1){ 
    if(x[i]>x[k]){ 
     temp=x[i]; 
     x[i]=x 
     x[k]=temp 
    } 
    } 
} 
x[i]=mat[i][k]; 
mat[i][k]=x[j] 

我不確定如何排序或陣列複製回成矩陣。

+0

JavaScript區分大小寫。使用'new Array'而不是'new array'。 –

+0

另外,在JavaScript中將數組初始化爲特定大小是毫無意義的。 – Pointy

+0

除了計算它的平均值之外,你還想做什麼?而「複製回Z」是什麼意思? Z值應該排序嗎? – pimvdb

回答

1

嘗試重寫代碼,是這樣的:

var k=0; 
var j=0; 
var i=0; 
var x=0; 

for (k=0;k<8;k++){ 
    x[j] = mat[i][k] 
    j=j+1 
} 

var x = new Array(); 
j=8; 
k=j; 
for(i=1;i<7;i++){ 
    k[j]mat[i][k]; 
    j=j+1; 
} 

var mat= new Array(); 
i=7 
for(i=0;1<21;i=i+1){ 
    for(k=i+1;k<22;k=k+1){ 
    if(x[i]>x[k]){ 
     temp = x[i]; 
     x[i] = x 
     x[k] = temp 
    } 
    } 
} 
x[i] = mat[i][k]; 
mat[i][k] = x[j]; 

測試此代碼了。它應該完美地工作。