Google Gemini




Google Gemini : https://gemini.google.com/app É facil obter resultados de forma rápida e directa : 

- dar primeiro o código para gerar o tipo de dados a estudar 

- depois dar o algoritmo para aplicar os dados, ATF 

Podemos fazer então a pergunta ao Gemini da forma : Linux Ubuntu, clang c/c++, create a example of a matrix in file matrix.txt 10000x10000 of data for apply extrapolation algorithm of values in time,code RM


Exemplo de Código para ficheiro de dados criado pelo Gemini :

 
#include <iostream>
#include <fstream>
#include <vector>
#include <cstdlib>
#include <ctime>

int main() {
    const int rows = 10000;
    const int cols = 10000;
    std::ofstream outFile("matrix.txt");

    if (!outFile) return 1;

    std::srand(std::time(0));
    
    // Rows x Cols
    for (int i = 0; i < rows; ++i) {
        double trend = (rand() % 100) / 100.0; // Slope for this row
        for (int j = 0; j < cols; ++j) {
            // Linear growth + small random noise
            double val = (trend * j) + ((rand() % 10) / 5.0);
            outFile << val << (j == cols - 1 ? "" : " ");
        }
        outFile << "\n";
    }

    outFile.close();
    return 0;
}

Exemplo de Código para ficheiro algoritmo criado pelo Gemini 

#include <iostream> #include <vector> #include <fstream> #include <numeric> using namespace std; // Uses Linear Regression to extrapolate the next value double extrapolate_next(const vector<double>& data) { int n = data.size(); double sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0; for (int i = 0; i < n; ++i) { sumX += i; sumY += data[i]; sumXY += i * data[i]; sumX2 += i * i; } double slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX); double intercept = (sumY - slope * sumX) / n; // Predict for next index (n) return slope * n + intercept; } int main() { ifstream file("matrix.txt"); if (!file) return 1; const int rows = 10000; const int cols = 10000; // Use a single vector for the row to save memory (Heap allocation) vector<double> row_data(cols); cout << "Processing 10,000 series..." << endl; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { file >> row_data[j]; } // Only print every 1000th result to avoid terminal flooding if (i % 1000 == 0) { double prediction = extrapolate_next(row_data); cout << "Row " << i << " | Predicted T_10000: " << prediction << endl; } } return 0; }
Copyright GOOGLE

Comentários