找到 34423 篇文章 相关编程

C++ 在给定复数二维数组的情况下执行 2D FFT 原地操作

Krantik Chavan
更新于 2019-07-30 22:30:25

733 次浏览

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

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

Krantik Chavan
更新于 2019-07-30 22:30:25

3K+ 次浏览

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

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

Daniol Thomas
更新于 2019-07-30 22:30:25

233 次浏览

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

C++ 程序,实现装箱问题算法

Daniol Thomas
更新于 2019-07-30 22:30:25

1K+ 次浏览

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

C++ 程序,以所有可能的方式执行整数的划分

Daniol Thomas
更新于 2019-07-30 22:30:25

754 次浏览

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

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

Daniol Thomas
更新于 2022-02-17 13:07:35

6K+ 次浏览

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

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

Nancy Den
更新于 2019-07-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-07-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-07-30 22:30:25

2K+ 次浏览

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

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

Krantik Chavan
更新于 2019-07-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; i

广告

© . All rights reserved.