找到关于编程的34423 篇文章

C++:对给定的复数二维数组进行原地二维FFT

Krantik Chavan
更新于 2019年7月30日 22:30:25

733 次浏览

快速傅里叶变换 (FFT) 是一种计算离散傅里叶变换 (DFT) 及其逆变换的算法。基本上,傅里叶分析将时间(或空间)转换为频率,反之亦然。FFT 通过将 DFT 矩阵分解为稀疏(大部分为零)因子的乘积来快速计算变换。算法开始 声明数组大小 获取数组元素 声明三个数组 初始化高度 = 数组大小,宽度 = 数组大小 创建两个外循环来迭代输出数据 创建两个外循环来迭代输入数据 计算实部、虚部……阅读更多

使用朴素方法计算离散傅里叶变换的 C++ 程序

Krantik Chavan
更新于 2019年7月30日 22:30:25

3K+ 次浏览

在离散傅里叶变换 (DFT) 中,将函数的等间隔样本的有限列表转换为有限复数正弦组合的系数列表。它们按频率排序,具有相同的样本值,以将采样函数从其原始域(通常是时间或沿线的位移)转换为频域。算法开始 取一个变量 M 并将其初始化为某个整数 声明一个数组 function[M] 对于 i = 0 到 M-1 function[i] = (((a * (double) i) + (b * (double) i)) - c) ... 阅读更多

直接计算 DFT 系数的 C++ 程序

Daniol Thomas
更新于 2019年7月30日 22:30:25

233 次浏览

在离散傅里叶变换 (DFT) 中,将函数的等间隔样本的有限列表转换为有限复数正弦组合的系数列表。它们按频率排序,具有相同的样本值,以将采样函数从其原始域(通常是时间或沿线的位移)转换为频域。算法开始 声明三个变量,它们是线性方程的系数和最大值 读取变量 定义一个包含两个变量 real、img 的类 创建一个构造函数……阅读更多

实现装箱问题的 C++ 程序

Daniol Thomas
更新于 2019年7月30日 22:30:25

1K+ 次浏览

装箱问题是一种特殊的切割库存问题。在装箱问题中,必须将不同体积的对象装入有限数量的容器或箱子中,每个箱子的体积为 V,以最大限度地减少使用的箱子数量。在计算复杂性理论中,这是一个组合 NP-hard 问题。当箱子数量限制为 1 且每个物品都具有体积和价值时,最大化可以放入箱子中的物品价值的问题称为背包问题。算法开始 装箱(指针,大小,数量)……阅读更多

以所有可能方式对整数进行分区的 C++ 程序

Daniol Thomas
更新于 2019年7月30日 22:30:25

754 次浏览

这是一个 C++ 程序,用于获取给定整数的所有唯一分区,以便分区的加法结果为整数。在这个程序中,给定一个正整数 n,并生成所有可能的唯一方式来表示 n 为正整数的和。算法开始 函数 displayAllUniqueParts(int m): 声明一个数组来存储分区 p[m]。 将分区的最后一个元素 k 的索引设置为 0 将第一个分区初始化为数字本身,p[k]=m 创建一个 while 循环,它首先打印当前分区,然后生成下一个分区。当当前……阅读更多

解决分数背包问题的 C++ 程序

Daniol Thomas
更新于 2022年2月17日 13:07:35

6K+ 次浏览

在分数背包问题中,给定一组物品,每个物品都有重量和价值。我们需要分解物品以最大化背包的总价值,这可以通过贪婪方法来实现。算法开始 取一个 Item 结构的数组 声明值、重量、背包重量和密度 计算每个项目的密度 = 值 / 重量 按密度递减的顺序对项目数组进行排序 我们将从数组顶部添加值到总值,直到装满包,即;总值

解决 0-1 背包问题的 C++ 程序

Nancy Den
更新于 2019年7月30日 22:30:25

5K+ 次浏览

在 0-1 背包问题中,给定一组物品,每个物品都有重量和价值。我们需要确定要包含在集合中的每种物品的数量,以便总重量小于或等于给定的限制,并且总价值尽可能大。输入值 = [10, 20, 30, 40, 60, 70] 重量 = [1, 2, 3, 6, 7, 4] int w = 7 输出背包值是:100 算法开始 输入:每种物品都带重量和价值的物品集合 设置背包容量 物品数量 = sizeof(values) / sizeof(values[0]) ... 阅读更多

实现费马小定理的 C++ 程序

Nancy Den
更新于 2019年7月30日 22:30:25

701 次浏览

费马小定理是初等数论的基本结果之一,也是费马素性检验的基础。该定理以皮埃尔·德·费马的名字命名,他于 1640 年陈述了该定理。该定理指出,如果 p 是素数,则对于任何整数 a,数 a p–a 是 p 的整数倍。算法开始 函数 power() 用于计算 a 的 b 次幂模 M 函数 modInverse() 用于查找 a 模 m 的模逆: 设 m 为素数 如果 a 和 m 互素……阅读更多

实现扩展欧几里德算法的 C++ 程序

Krantik Chavan
更新于 2019年7月30日 22:30:25

2K+ 次浏览

扩展欧几里德算法只是计算两个数字的 GCD 的另一种方法。它有额外的变量来计算 ax + by = gcd(a, b)。在计算机程序中使用它效率更高算法开始 声明变量 a、b、x 和 y gcdExtended(int a, int b, int *x, int *y) 如果 (a == 0) *x = 0;*y = 1;返回 b; 取两个变量来存储结果……阅读更多

实现欧拉定理的 C++ 程序

Krantik Chavan
更新于 2019年7月30日 22:30:25

422 次浏览

这是一个演示欧拉定理实现的 C++ 程序。为了使模乘法逆存在,数字和模数必须互素。算法开始 取输入以查找模乘法逆 取输入作为模值 执行逆数组函数:modInverse(x + 1, 0); modInverse[1] = 1; 对于 i = 2 到 x modInverse[i] = (-(y / i) * modInverse[y mod i]) mod y + y 返回 modInverse 结束示例代码#include #include using namespace std; vector inverseArray(int x, int y) { vector modInverse(x + 1, 0); modInverse[1] = 1; for (int i = 2;

广告
© . All rights reserved.