AP1400-2-HW1---一个c++的线性代数库

(1)random库(随机数矩阵):

1.

  • (1)std::random_device是一个产生非确定性随机数的类

  • 在大多数情况下,它会产生基于硬件的随机数,比如通过硬件噪声等方式。

  • (2)rd这个类的一个实例

  • 这一行代码的作用是提供种子(seed)的随机数生成器

 std::random_device rd;  // 如果可行,用一个真实的随机值作为种子

2.

  • (1)std::mt19937是一种基于梅森旋转算法的随机数生成器

  • 这个生成器提供了高质量的伪随机数,并且有非常长的周期(219937−1219937−1个数字之前重复)。

  • (2)gen是这个类的一个实例

  • 调用种子来生成一个随机数。这意味着每次程序运行时, 都会因为不同的种子而产生不同的随机数序列。

  • std::mt19937 gen(rd());
    

3. 

  • (1)std::uniform_int_distribution<int> 是一个模板类,用于使用 随机数生成器生成特定范围内的均匀分布的数

  • 在这个例子中,它被用于生成范围在 1 到 100 之间的整数。

  • (2)dist 是这个类的一个实例

namespace algebra {    Matrix random(size_t n, size_t m, double min, double max){// 随机种子生成引擎std::random_device rd;// 随机数生成器std::mt19937 gen(rd());// 规定随机数范围std::uniform_real_distribution<double> dis(min, max);Matrix goal(n, std::vector<double>(m));for(size_t line = 0; line < n; line++) {for(size_t row = 0; row < m; row++) {goal[line][row] = dis(gen);}}return goal;}
}

(2)<iomanip> (输出格式show函数):

  1. std::setprecision(int n)

    • 设置浮点数输出的精度。

    • 示例:std::cout << std::setprecision(3) << 3.14159;

    • 输出 3.14

  2. std::setw(int n)

    • 设置下一个输出字段的宽度。

    • 示例:std::cout << std::setw(10) << 123;

    • 输出 123(前面有7个空格)。

示例:

namespace algebra {    void show(const Matrix& matrix) {// 设置输出格式,以显示有 3 位小数的数字std::cout << std::fixed << std::setprecision(3);size_t matrix_line = matrix.size();size_t matrix_row = matrix[0].size();for(size_t line = 0; line < matrix_line; line++) {for(size_t row = 0; row < matrix_row; row++) {// std::setw(8)用于确保每个元素在宽度为8个字符的字段内显示,以便对齐std::cout << matrix[line][row];if (row < matrix_row - 1)std::cout << " ";}std::cout << std::endl;}}
}

(3)

multiply(const Matrix& matrix1, const Matrix& matrix2)

注意:

循环的形式参数i,j,k应该与矩阵长宽值的类型相同均为size_t

(不然可能报错:Segmentation fault(应该是越界的意思))

Matrix multiply(const Matrix& matrix1, const Matrix& matrix2) {size_t matrix1_lines = matrix1.size();size_t matrix1_rows = matrix1[0].size();size_t matrix2_lines = matrix2.size();size_t matrix2_rows = matrix2[0].size();if (matrix1_rows != matrix2_lines) {throw std::invalid_argument("Matrix dimensions are not compatible for multiplication.");}Matrix goal(matrix1_lines, std::vector<double>(matrix2_rows, 0));        for (size_t line = 0; line < matrix1_lines; line++) {for (size_t row = 0; row < matrix2_rows; row++) {for (size_t num = 0; num < matrix1_rows; num++) {goal[line][row] += matrix1[line][num] * matrix2[num][row];}}}return goal;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[陇剑杯 2021]webshell

[陇剑杯 2021]webshell 题目做法及思路解析&#xff08;个人分享&#xff09; 问一&#xff1a;单位网站被黑客挂马&#xff0c;请您从流量中分析出webshell&#xff0c;进行回答&#xff1a; 黑客登录系统使用的密码是_____________。 题目思路&#xff1a; 分析题目&…

logstack 日志技术栈-02-ELK 的缺点?loki 更轻量的解决方案?

ELK/EFK日志系统 如果今天谈论到要部署一套日志系统&#xff0c;相信用户首先会想到的就是经典的ELK架构&#xff0c;或者现在被称为Elastic Stack。 Elastic Stack架构为Elasticsearch Logstash Kibana Beats的组合&#xff0c;其中&#xff0c;Beats负责日志的采集&…

多表形成树形结构

多表形成树形结构&#xff1a; package com.js.archive.assistant.domain.vo;import com.js.core.domain.vo.BaseVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode;import…

mysql中建立一个用户,只能看到某个指定的数据库

MySQL用户管理及权限控制 在MySQL数据库中&#xff0c;用户管理和权限控制是非常重要的功能。通过正确地设置用户和权限&#xff0c;可以保护数据库的安全性&#xff0c;防止未授权的访问和数据泄露。本文将介绍如何在MySQL中创建一个用户&#xff0c;并限制该用户只能访问特定…

假设检验:以样本服从二项分布举例

目录 假设检验一、假设检验的思想二、假设检验的基本步骤1. 确定要进行检验的假设2. 选择检验统计量3. 确定用于做决策的拒绝域4. 求出检验统计量的值5. 查看样本结果是否位于拒绝域内6. 做出决策 三、举例说明例子1——某公司治疗打鼾例子2——女士品茶的故事 假设检验 一、假…

用Photoshop来制作GIF动画

录了个GIF格式的录屏文件&#xff0c;领导让再剪辑下&#xff0c;于是用Photoshop2023&#xff08;PS版本低至CS6操作方式一样&#xff09;进行剪辑&#xff0c;录屏文件有约1400帧&#xff0c;由于我处理的帧数太多&#xff0c;PS保存为GIF格式时&#xff0c;还是挺耗时的&…

【Docker】网络配置及自定义网络的使用

一、引言 1、什么是网络配置 Docker的网络配置主要是指Docker容器与外部网络之间的连接设置&#xff0c;包括容器内部的IP地址、端口号等。Docker提供了多种网络模式&#xff0c;包括bridge、host、none等&#xff0c;以满足不同的需求。 默认情况下&#xff0c;Docker使用brid…

用Python替代Mapinfo更快查找两张表中距离最近的点

目录 一、引言 二、准备工作 三、数据准备 四、计算距离 五、筛选最近点 六、完整代码示例 七、性能优化 八、总结 一、引言 在地理信息系统&#xff08;GIS&#xff09;中&#xff0c;经常需要查找两张表中距离最近的点。传统的做法是使用Mapinfo软件&#xff0c;但这…

探索世界,从一款好用的浏览器开始!

好用的浏览器分享 在这个数字化的时代&#xff0c;浏览器已经成为了我们生活中不可或缺的工具。从浏览新闻、社交媒体到工作学习&#xff0c;我们几乎无时无刻不在与浏览器打交道。那么&#xff0c;如何选择一款好用的浏览器呢&#xff1f;今天&#xff0c;我就来为大家分享几…

C++函数指针

目录 背景定义 实例运行结果 背景 定义 函数指针是一个指向函数的指针变量&#xff0c;它可以指向某个函数的入口地址&#xff0c;使得程序可以通过该指针变量调用该函数。 实例 #include <iostream> using namespace std;/*** 函数指针 */// 定义一个函数 int add(i…

SAP ABAP 指针

SAP ABAP 指针 目录 一、FIELD SYMBOL 字段符号 1、定义2、assign分配3.分配-内表4.动态内表 二、数据引用 一、FIELD SYMBOL 字段符号 定义&#xff1a;是已经存在的数据对象的占位符或者符号名称&#xff0c;通过关键字 FIELD-SYMBOLS 定义&#xff0c;类似于指针&#x…

systemverilog/verilog文件操作

1、Verilog文件操作 Verilog具有系统任务和功能,可以打开文件、将值输出到文件、从文件中读取值并加载到其他变量和关闭文件。 1.1 、Verilog文件操作 1.1.1、打开和关闭文件 module tb; // 声明一个变量存储 file handler integer fd; initial begin // 以写权限打开一个文…

机器学习实战15-推荐算法-协同过滤在电影推荐中的应用实践

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下机器学习实战15-推荐算法-协同过滤在电影推荐中的应用实践。 随着互联网的发展&#xff0c;信息过载问题日益严重&#xff0c;推荐系统应运而生。本文将详细介绍推荐算法在电影推荐领域的应用实践&#xff0c;以及其…

【Python】--- 基础语法(1)

目录 1.变量和表达式2.变量和类型2.1变量是什么2.2变量的语法2.3变量的类型2.3.1整数2.3.2浮点数&#xff08;小数&#xff09;2.3.3字符串2.3.4布尔2.3.5其他 2.4为什么要有这么多类型2.5动态类型特征 3.注释3.1注释的语法3.2注释的规范 结语 1.变量和表达式 对python的学习就…

muduo网络库剖析——通道Channel类

muduo网络库剖析——通道Channel类 前情从muduo到my_muduo 概要事件种类channel 框架与细节成员函数细节实现使用方法 源码结尾 前情 从muduo到my_muduo 作为一个宏大的、功能健全的muduo库&#xff0c;考虑的肯定是众多情况是否可以高效满足&#xff1b;而作为学习者&#x…

树莓派报错gpio: command not found(未找到命令)

使用gpio的时候出现报错 gpio: command not found 解决方法&#xff1a; wget https://project-downloads.drogon.net/wiringpi-latest.deb 过 wget 工具下载一个名为 "wiringpi-latest.deb" 的 Debian 软件包。这个软件包是 WiringPi 库的安装包&#xff0c;Wir…

好用的Redisson

好用的Redisson 文章目录 好用的Redisson介绍如何安装 Redisson如何编译运行 Redisson使用 RList 操作 Redis 列表示例 使用 RMap 操作 Redis 哈希示例 使用 RLock 实现 Redis 分布式锁示例 使用 RAtomicLong 实现 Redis 原子操作示例 **获取分布式队列**&#xff1a;RedissonC…

多线程-Thread类及常见方法

目录 1.什么是Thread类 1.1Thread 的常⻅构造⽅法 1.2 Thread 的⼏个常⻅属性 2.启动⼀个线程 - start() 经典面试题&#xff1a;start 和run 区别 3.中断⼀个线程 方法一&#xff1a; 方法二: 4.等待⼀个线程 - join() 1.什么是Thread类 Thread类是Java编程语言中的一个重…

图像去噪——CTNet网络推理测试(详细图文教程)

目录 一、CTNet二、源码包准备2.1 测试集2.2 模型权重 三、环境准备四、推理测试4.1 配置参数修改4.2 官网测试4.2.1 测试当通道图像4.2.1.1 命令方式测试4.2.1.2 Configuration配置测试4.2.1.3 测试结果 4.2.2 测试彩色图像4.2.2.1 命令方式测试4.2.2.2 Configuration配置测试…

性能优化-HVX架构简介

来自 「发表于知乎专栏《移动端算法优化》」 本文主要介绍Hexagon DSP的HVX技术&#xff0c;旨在通过简单的语言讲清HVX技术。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开…