Pascal問題 矩陣乘法,Pascal 矩陣乘法的完整過程?

2022-06-02 15:16:32 字數 5276 閱讀 5609

1樓:煢煢__相吊

vara,b,c,i,j,k:longint;

x,y,f:array[0..2000,0..2000]of longint;

begin

read(a);

read(b);

read(c);

for i:=1 to a do

for j:=1 to b do

read(x[i,j]);

for i:=1 to b do

for j:=1 to c do

read(y[i,j]);

writeln(a,' ',c);

for i:=1 to a do

begin

for j:=1 to c do

begin

for k:=1 to b do

f[i,j]:=f[i,j]+x[i,k]*y[k,j];

write(f[i,j],' ');

end;

writeln;

end;

end.

pascal 矩陣乘法的完整過程?

pascal 中一個關於矩陣乘法的問題

2樓:匿名使用者

拍菊誰盤溜穿幻似學倆舟體二灰鹽

願你倆用愛去綰著對方,彼此互相體諒和關懷,共同分享今後的苦與樂。敬祝百年好合永結同心!

3樓:

??? ?? ???? ? ???? ?

...!!!!!

..??

!?!?

..= =

急求!!關於矩陣乘法的判斷-pascal 10

4樓:匿名使用者

似乎這個找不出o(n)的吧...

最快是o(n^2)...

5樓:曉月寒波

o(n^2)的演算法應該很簡單把,每個乘出來一對比就完了嗎??!

關於pascal裡的實型乘法運算

6樓:匿名使用者

double、real都只能精確到小數點後17位

必須用高精度運算

pascal矩陣

7樓:

帕斯卡矩陣

帕斯卡矩陣:由楊輝三角形表組成的矩陣稱為帕斯卡(pascal)矩陣。

楊輝三角形表是二次項 (x+y)^n 後的係數隨自然數 n 的增大組成的一個三角形表。

如4階帕斯卡矩陣為:

pascal(4)=

[1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 20]

pascal(n)是矩陣實驗室(matrix laboratory)matlab中的命令,利用pascal()命令可以在矩陣實驗室中方便的得到任意階帕斯卡矩陣。設a為帕斯卡矩陣,則在matlab命令視窗中輸入a=pascal(n),n為正整數,可得到階數為n的帕斯卡矩陣。

8樓:匿名使用者

const max=100;

var a:array[1..max,1..max]of longint;

n,i,j,sum,m,mm:longint;

begin

readln(n);

i:=1;j:=1;m:=n;mm:=1;

while sum<>n*n do beginfor i:=mm to m do begininc(sum);

a[i,j]:=sum;

if sum=n*n then break;

end;

for j:=mm+1 to m do begininc(sum);

a[i,j]:=sum;

if sum=n*n then break;

end;

for i:=m-1 downto mm do begininc(sum);

a[i,j]:=sum;

if sum=n*n then break;

end;

for j:=m-1 downto mm+1 do begininc(sum);

a[i,j]:=sum;

if sum=n*n then break;

end;

dec(m);inc(mm);

end;

for j:=1 to n do beginfor i:=1 to n do write(a[i,j]:4);

writeln;

end;

readln;

end.

pascal 矩陣的轉置

9樓:聽不清啊

假如矩陣已在a陣列中,通過以下迴圈即可將其轉置到b陣列中。

for i:=1 to 3 do

for j:=1 to 4 do

b[j,i]:=a[i,j];

完成後即可列印。

pascal乘積最大問題

10樓:匿名使用者

我們一起來分析一下:

設字串長度為n,乘號數為k,如果n=50,k=1時,

有(n-1)=49種不同的乘法,當k=2時,有c(2,50-1)=1176種乘法,既c(k,n-1)種乘法,當n、k稍微大一些的時候,用窮舉的方法就不行了。

設數字字串為a1a2…an

k=1時:一個乘號可以插在a1a2…an中的n-1個位置,這樣就得到n-1個子串的乘積:

a1*a2…an, a1a2*a3…an, …, a1a2…a n-1*an (這相當於是窮舉的方法)

此時的最大值=max

k=2時,二個乘號可以插在a1a2…an中n-1個位置的任兩個地方, 把這些乘積

分個類,便於觀察規律:

①倒數第一個數作為被乘數:

a1*a2 …a n-3 a n-2 a n-1*an,

a1a2 …*a n-2 a n-1*an,

a1a2 …*a n-1*an。

設符號f[n-1,1]為在前n-1個數中插入一個乘號的最大值,則的最大值為

f[n-1,1]*an。

②倒數第二個數作為被乘數:

a1*a2 …an-3 a n-2* a n-1,

an … a1a2 …*a n-2*a n-1an,

a1a2…*a n-3 a n-2* a n-1 an。

設符號f[n-2,1]為在前n-2個數中插入一個乘號的最大值,則的最大值為

f[n-2,1]*a n-1 an

③倒數第三個數作為被乘數:

… 設符號f[n-3,1]為在前n-3個數中插入一個乘號的最大值,則的最大值為

f[n-3,1]*a n-2 a n-1 an

…… a3~an作為被乘數:f[2,1]*a3 …a n-2 a n-1 an

此時的最大乘積為:

f[n,k]=max

設f[i,j]表示在 i 個數中插入 j 個乘號的最大值,g[i,j]表示從ai到aj的數字列,則可得到動態轉移方程:

f[i,j] = max

(1<=i<=n, 1<=j<=k)

邊界: f[i,0] =g[1,i] (數列本身)

階段:子問題是在子串中插入j-1,j-2……1,0個乘號,因此乘號個數作為階段的劃分(j個階段)

狀態:每個階段隨著被乘數數列的變化劃分狀態。

決策:在每個階段的每種狀態中做出決策。

資料結構:

(此題不需要高精度,pascal用longint即可ac)

int n,k; /* n為數字個數,k為劃分個數*/

int i,j,l; /*迴圈變數*/

char c; /*字元讀入*/

int data[50]=; /*存數字的陣列*/

int g[50][50],f[50][10]; /*g為數字列,f為動態規劃陣列*/

初始化:

cin >> n >> k; /*讀入,n,k*/

for(i=1;i<=n;i++)

for(i=1;i<=n-1;i++)

for(j=i+1;j<=n;j++)

g[i][j]=g[i][j-1]*10+data[j]; /*初始化數列*/

for(i=1;i<=n;i++)

f[i][0]=g[1][i]; /*初始化動態規劃陣列*/

動態規劃:

for(i=1;i<=n;i++)/*方程:f[i,j]表示前i個數中插入j個*號的最優值。*/

for(j=1;j<=i+1;j++)

for(l=1;l<=i-1;l++)

f[i][j]=max(f[i][j],f[l][j-1]*g[l+1][i]);

輸出f[n][k]

11樓:匿名使用者

這是動規題

並且是noip上 吧

不難看看題解就知道了

pascal 輸入n(1<=n<=20),輸出n*n的矩陣,且按照一定的規律。

12樓:匿名使用者

varn,i,j:longint;

begin

readln(n);

for i:=1 to n do

begin

for j:=1 to n-1 do write((i-1)*n+j,' ');

writeln(i*n);

end;

end.

13樓:

vari,j,k,o,p,n,m:longint;

a:array[1..9,1..9]of longint;

begin

i:=1; j:=1; k:=1;

read(n);

while k<=n*n do

begin

a[i,j]:=k;

dec(i); inc(j); inc(k);

if (i=0) or (j=n+1) thenbegin

i:=i+j; j:=1;

if i>n then

begin

j:=1+i-n;i:=n;

end;

end;

end;

for i:=1 to n do

for j:=1 to n do

if j=n then writeln(a[i,j]:3) else write(a[i,j]:3);

end.

分塊矩陣乘法的問題,,可以把矩陣任意的分塊嗎?矩陣分塊乘法要注意什麼?比如

這樣分了你的0還是方陣嗎?以左上角的0為例,他是一個3 1階矩陣 即列向量 在計算a 2時,其11元是0 0 e 0 0兩個列向量又怎麼相乘呢。矩陣分塊是可以隨意分的,但是特定的題目也要具體對待 矩陣與其分塊矩陣等價嗎,如果將兩個矩陣相乘劃分為分塊矩陣相乘應如何劃分才可以計算 矩陣與其分塊矩陣實際上...

矩陣乘法怎麼算,詳細的步驟,這個矩陣乘法怎麼算

設a aij 是m行s列的 b bij 是s行n列的 則a,b 可乘,結果是 m行n列的矩陣.設ab c cij 則 ab的第 i行第j列的元素版 a的第i行的各元素分權別b的第j列的各元素之和即cij ai1b1j ai2b2j aisbsj 不清楚,再問 滿意,請採納 祝你好運開 這個矩陣乘法怎...

怎樣使用matlab計算矩陣乘法

矩陣分析是解決很多問題的好方法,但是很多時候矩陣的運算比較繁瑣,回特別是高階矩陣運算答。這時候如果用matlab來計算就方便快捷得多。下面我將介紹一些基本的矩陣運算方法。如加,減,乘,除,轉置,求逆。約定 a 1,3,5 2,4,6 7,9,8 b 9,6,4 3,4,5 2,3,4 工具 原料 m...