How to Simulate and Track the Evolution of a 128x128 Matrix in C++?

  • Context: Comp Sci 
  • Thread starter Thread starter chey
  • Start date Start date
  • Tags Tags
    C++ Matrices
Click For Summary
SUMMARY

The discussion focuses on simulating and tracking the evolution of a 128x128 matrix in C++ using a random seed of 1.0 and a filling probability of 0.8. Participants successfully generated the matrix and saved it as a tab-delimited text file named "try1.txt". The conversation also addresses how to represent the reduction of the spanning matrix, suggesting modifications to the output logic to count consecutive filled cells. This approach enhances the clarity of the matrix representation in subsequent iterations.

PREREQUISITES
  • C++ programming fundamentals
  • Understanding of random number generation in C++
  • File handling in C++ using ofstream
  • Matrix manipulation techniques
NEXT STEPS
  • Implement matrix evolution tracking in C++
  • Explore advanced random number generation techniques in C++
  • Learn about data serialization formats for matrix storage
  • Investigate algorithms for matrix reduction and representation
USEFUL FOR

C++ developers, data scientists, and anyone interested in matrix manipulation and simulation techniques.

chey
Messages
1
Reaction score
0
1. Show the evolution/reduction of the system of a 128x128 matrix with a random seed of (1.0) and
with the filling probability of 0.8. Save as a square matrix in a text file(*.txt) that has tab delimited
columns and uses newline as row terminator. Save each iteration as a separate file with the iteration
number as its filename


3. #include<iostream>
#include<fstream>
#include<time.h>

using namespace std;

int main()
{
srand(1.0);
float P1, P0, P;
int c = 128;
int array [c][c];
for(int i=0;i<c;i++)
{
for(int j=0;j<c;j++)
{
P1 = float((rand()%100)*0.01);
P0 = 0.2;
if (P1>P0)
{
P = 1;
}
else
{
P = 0;
}
array [j] = P;
}
}
ofstream out;
out.open ("try1.txt");
for(int i=0;i<c;i++)
{
for(int j=0;j<c;j++)
{
out<<array[j]<<"\t";
}
out << "\n";
}
system("pause");
return 0;
}


I was able to generate a 128x128 matrix with filling probability 0.8 but I don't know how to show the reduction of the spanning matrix.
 
Physics news on Phys.org
This is a guess, but maybe it means, replace your line for(int j=0;j<c;j++)out<<array[j]<<"\t";, in the above post, with something like the following.

Code:
n1=0;
for(int j=0;j<c;j++){
   if(array[i][j]==1)n1=n1+1;else{
      if(n1>0)out<<n1<<"\t";
      out<<"0";
      if(j<c-1)out<<"\t";
      n1=0;
      }
   }
if(n1>0)out<<n1;
out<<"\n";
 

Similar threads

  • · Replies 17 ·
Replies
17
Views
3K
  • · Replies 23 ·
Replies
23
Views
9K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 2 ·
Replies
2
Views
6K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K