Meta force佛薩奇NFT系統開發原始碼技術介紹

Lyr96246466發表於2023-03-29

透過佛薩奇創始人Lado的講解18I鏈上合約-259l開發系統3365影片可以瞭解到,Lado建立Meta force目標是建立一個全世界

最大的基於WEB3.0的元宇宙聚合平臺,其成員使用智慧合約即時利潤分配工具和演演算法互相幫助以實現財務自由。


所以在Meta force裡面,你可以看到一切你想要的生態,NFT交易所、質押挖礦、Gamefi、Web3.0、Force coin原力代幣,

以及一系列的營銷工具、商學院和交易俱樂部。


根據2022年7月31日Lado與國際見面答疑會相關內容,NFT將作為Meta force第一個明星級真實產品首先亮相,那麼今天

主要為大家講解Mtea force原力元宇宙生態體系之皇家NFT。


class Mat

{

public:

int m = 1, n = 1; //行數和列數

double mat[N][N] = { 0 };  //矩陣開始的元素

 

Mat() {}

Mat(int mm, int nn)

{

m = mm; n = nn;

}

void create();//建立矩陣

void Print();//列印矩陣

 

bool div(Mat a,Mat b);//求 a.mat/b.mat

};


bool Mat::div(Mat a,Mat b)

{

if (b.n != b.m)

{

cout << "奇異矩陣不能作分母!" << endl;

return false;

}

if (b.n != a.m)

{

cout << "這兩個矩陣無法相除!" << endl;

return false;

}

//下來進行自上而下的初等行變換,使得矩陣 b.mat 變成單位上三角矩陣

for (int i = 1; i <= b.m; i++) //注意這裡要 i<=m,和之前的上三角矩陣有不同

{                         //因為要判斷最後一行化為上三角矩陣的最後一行最後一列元素是否為 0

//尋找第 i 列不為零的元素

int k;

for (k = i; k <= b.m; k++)

{

if (fabs(b.mat[k][i]) > 1e-10) //滿足這個條件時,認為這個元素不為0

break;

}

if (k <= b.m)//說明第 i 列有不為0的元素

{

if (k != i)//說明第 i 行 第 i 列元素為零,需要和其他行交換

{

//交換第 i 行和第 k 行所有元素

for (int j = i; j <= b.n; j++)//從第 i 個元素交換即可,因為前面元素都為零

{//使用mat[0][j]作為中間變數交換元素

b.mat[0][j] = b.mat[i][j]; b.mat[i][j] = b.mat[k][j]; b.mat[k][j] = b.mat[0][j];

}

for (int j = 1; j <= a.n; j++)//從第 1 個元素交換

{

a.mat[0][j] = a.mat[i][j]; a.mat[i][j] = a.mat[k][j]; a.mat[k][j] = a.mat[0][j];

}

}

double c = b.mat[i][i];//倍數

//將矩陣 a.mat 的主對角線元素化為 1

for (int j = i; j <= b.n; j++)//從第 i 個元素開始,前面元素都為 0

{

b.mat[i][j] /= c;

}

for (int j = 1; j <= a.n; j++)//給分子矩陣作同樣的變換

{//從第 1 個元素開始

a.mat[i][j] /= c;

}

for (int j = i + 1; j <= b.m; j++)

{

//注意本來為 -b.mat[j][i]/b.mat[i][i],因為b.mat[i][i]等於 1,則不需要除它

c = -b.mat[j][i];

for (k = i; k <= b.n; k++)//從第 i 個元素開始

{

b.mat[j][k] += c * b.mat[i][k];//第 i 行 b 倍加到第 j 行

}

for (k = 1; k <= b.n; k++)//從第 1 個元素開始

{

a.mat[j][k] += c * a.mat[i][k];

}

}

}

else

{

cout << "奇異矩陣不能作分母!" << endl;

return false;

}

}

 

//下面進行自下而上的行變換,將 b.mat 矩陣化為單位矩陣

for (int i = b.m; i > 1; i--)

{

for (int j = i - 1; j >= 1; j--)

{

double c = -b.mat[j][i];

b.mat[j][i] = 0; //實際上是透過初等行變換將這個元素化為 0,

for (int k = 1; k <= a.n; k++)

{//透過相同的初等行變換來變換右邊矩陣

a.mat[j][k] += c * a.mat[i][k];

}

}

}

//下面程式碼將經過初等行變換的分子賦值給類中的矩陣

m = a.m; n = a.n;

for (int i = 1; i <= m; i++)

{

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

{

mat[i][j] = a.mat[i][j];

}

}

return true;

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70012429/viewspace-2942484/,如需轉載,請註明出處,否則將追究法律責任。

相關文章