在海湾合作委员会的来源中,我在哪里可以找到数学例程?数学功能如何工作?
晚安.我是数学单身汉,正在学习log()和系列.我确实想看看海湾合作委员会如何计算所有这些东西,它将对我有很大帮助,数学中没有任何东西.我疯狂地尝试使用有史以来最快的方法来找到GCC如何计算对数和平方根.我没有载荷来源,但找不到数学例程. https://github.com/gcc-mirror/gcc 我只想看到它,我根本不是一个好程序员,我的东西是数学. 解决方案 看一下此日志实现. 这是从来自实施: 方法 降低参数:查找k和f,以便 x = 2^k * (1+f), where sqrt(2)/2
18 2024-04-08
编程技术问答社区
寻找使用离散值计算高斯曲线最大值的C/C++库
我有一些离散的值和假设,即这些值位于高斯曲线上. 仅使用3个离散值,应该有一种用于最大计算的算法. 您知道实施此计算的C/C ++中的任何库或代码吗? 谢谢! P.S.: 最初的任务是自动对焦实现.我移动(显微镜)摄像头,并在不同位置捕获图片.具有最不同颜色的位置应该具有最佳的焦点. 编辑 这是很久以前的:-( 我想删除这个问题,但让它尊重好答案. 解决方案 您有三个应该在高斯曲线上的三个点;这意味着它们位于功能上: 如果您采用此功能的对数,则获得: 这只是一个简单的二年级多项式,即具有近似近似轴的抛物线: 因此,如果您知道抛物线的三个系数,则可以得出高斯曲线的参数;顺便说一句,高斯函数的唯一参数是您感兴趣的一定内容,因为它告诉您分布的中心在哪里,即最大位置在哪里.立即发现 所有要做的就是适合抛物线(带有"原始" X和您的值的对数).现在,如果您有更多的积分,则将涉及多项式拟合,但是,由于您只有三分,情况确实很简单:只有一个和只有一个抛物
8 2024-04-07
编程技术问答社区
是否可以用整数算术来实现位操作符?
我面临着一个相当特殊的问题.我正在为不支持位操作的体系结构进行编译器.但是,它处理了签名的16位整数算术,我想知道是否可以仅使用以下方式实施位置操作: 加法( c = a + b ) 减法( c = a -b ) division ( c = a/b ) 乘法( c = a * b ) 模量( c = a%b ) 最小( c = min(a,b)) 最大( c = max(a,b)) 比较( c =(a ) 跳跃( goto,for,et.C.) 我想支持的位操作是: 或( c = a | b ) 和( c = a&b ) xor ( c = a ^ b ) 左移( c = a ) 右移( c = a >> b ) (所有整数均已签署,这是一个问题) 签名的Shift ( c = a >>> b ) 一个人的补体( a = 〜b ) (已经找到了解决方案,请参见下文) 通常情况是相反.如何使用钻头实现算术优化.但是在这种情况下不是.
4 2024-03-31
编程技术问答社区
为什么一个数字的平方比两个随机数字的乘法要快?
乘以两个二进制数需要n^2时间,但是平方数可以更有效地完成. (n是碎数)怎么可能? 还是不可能?这是精神错乱! 解决方案 存在比O(n^2)更有效地乘以两个数字的算法(请参阅Karatsuba,Pollard,Schönhage -Strassen等) 两个问题"乘以两个任意n位数字"和"正方形n任意n位号"具有相同的复杂性. 我们有 4*x*y = (x+y)^2 - (x-y)^2 因此,如果平方的n位整数需要O(f(n))时间,那么也可以在O(f(n))中获得两个任意n位整数的乘积. (即2x n位总和,2x n位正方形,1x 2n位总和和1x 2n位移位) 显然我们有 x^2 = x * x 因此,如果将两个n位整数乘以O(f(n)),则可以在O(f(n))中进行n位整数. 任何计算产品(正方形)的算法提供了一种以相同的渐近成本计算正方形的算法. 如其他答案中所述,在平方的情况下,可以简化用于快速乘法的算法.增
16 2024-03-31
编程技术问答社区
`2^n-1`的De Bruijn-like序列:它是如何构建的?
我正在寻找条目 fin o(lg(n))操作中的钻头整数 来自我可以轻松地看到该条目中的第二个算法如何工作 static const int MultiplyDeBruijnBitPosition2[32] = { 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 }; r = MultiplyDeBruijnBitPosition2[(uint32_t)(v * 0x077CB531U) >> 27]; 计算n = log2 v其中v已知为2的幂.在这种情况下,0x077CB531是普通的de bruijn序列,其余的很明显. 但是,该条目中的第一个算法 static const int MultiplyDeBruijnBitPosition[32] = { 0, 9
16 2024-03-31
编程技术问答社区
只有一个节点的树的高度
根据Wikipedia, 树的高度是从根到根的路径的长度 树上最深的节点.一个(生根的)树只有一个节点( root)的高度为零(或一个). 我不明白 - 它是零还是一个(或两者)? 解决方案 这只是您对二进制树高度的递归描述所做的.您可以考虑仅由一个高度或1个高度的节点组成的树. 如果您真的想考虑一下,您可以认为 如果将高度视为边缘计数,则为0(因此一个节点没有任何边缘,因此0) 是1,如果将高度视为节点计数(以便单个节点计数为1) 这只是描述最小的树的高度,然后在任何情况下添加降落节点时,您也会添加一个相关的边缘,以便相应地增加. 在Wikipedia中提供的示例中: 该树可以具有4(节点)或3(边缘)的高度.这取决于您是通过边缘或节点计数的. 其他解决方案 使用节点计数而不是边缘计数的一个优点是,它将空的情况(零节点和节点级别)与最小情况(一个节点和一个节点级别)区分开.在某些情况下,一棵空的树不会有意义,但在其他情况下,空
18 2024-03-30
编程技术问答社区
什么数字在二进制中只能以近似值表示?
在十进制(基数10)中,1/3只能近似于0.33333重复. 二进制中只能表示为近似值的二进制数字是多少? 解决方案 0.1就是这样一个例子,也是0.2 这个问题也类似于 所以问题 ,它已经有很好的答案. 其他解决方案 一个更好的问题是询问哪些数字可以完全用二进制表示.其他所有内容只能近似或根本没有表示. 请参阅其他解决方案 好吧,有无限的数字在该符号中不能精确表示,但这是一个:1/10.
20 2024-03-30
编程技术问答社区
如果g(n)=sqrt(n)^sqrt(n),g(n)的复杂性是否=O(2^n)?
如果g(n)= sqrt(n) sqrt(n),g(n)= o的复杂性是否(2 n )? 任何帮助都将不胜感激. 解决方案 比较两个指数函数时,一种有用的技术是使它们具有相同的基础: √n√n =(2 lg√n)√n = 2 √nlg√n 现在,您正在比较2 √nlg√n与2 n ,并且希望从中可以很容易地看到,前者的函数不会像后者,所以√n√n = o(2 n )确实是正确的. 其他解决方案 其他证据简短而又不错,但是这里有更详细的证据,可以指定大oh符号的定义和所需限制的计算. 一个函数g(n)是由另一个函数f(n)由big-oh note(g(n) = O(f(n)))限制的 ( source "> source ) P> 放入功能,我们必须计算 首先在g(n)项上进行一些代数按摩.根据根源身份,它认为sqrt(n) = n^(1/2).此外,它认为(x^a)^b = x^(a*b).这样: 此外,2^n是exp(log(
14 2024-03-30
编程技术问答社区
如何从时间采样数据中计算出三相千瓦时
我的问题是我想从电流和电压的时间采样数据计算三个相功率. 我的问题: 如何从时间采样数据中计算能量(单位千瓦小时)?有任何方程式吗? 是否需要考虑相移? (如何计算相移?如何将其链接到计算三相功率?) 是否可以使用一些更好的平台来解决我的问题? 我获得瞬时样本值(不是连续的). (我有一些传感器可以提供当前和电压 - 我将其转换为数字进行处理).大约有50个样本每秒. (当我们提高三个相的所有功率时,这是零吗?我正在Arduino处理我的数据. (我不知道这是问我问题的地方(如果我可以从某些地方得到更好的帮助,请建议我).) 解决方案 救援的数值计算. 如果您有几个电压和电流样本,那么您也有许多瞬时功率样本:P(t) = U(t) * I(t). 现在您有了力量,有时间,您可以 >有关时间的力量.一种简单的数字方法是 trapezoidal规则.这个问题被标记为" Arduino",我非常了解C,因此这里有一些伪C,说明了该技术:
8 2024-03-03
编程技术问答社区
矩形坐标与旋转角度的关系
我正在尝试使用SurfaceView和Canvas图纸在Android中创建自定义组件.这些组件是可重新定向的,可以通过触摸旋转.考虑创建图像通过触摸和拖动所需的边缘,可以将其顶部,右侧,底部和左边缘视为可扩展.我正在使用RectF来保持组件的边界,以旋转我使用的canvas.rotate(angle, bounds.centerX(),bounds.centerY())方法.问题在于调整顶部边缘的大小时,应固定右侧和底部边缘,如果旋转角度超过0度,我将无法修复它.我需要一个数学解决方案来找出相对于实际矩形的旋转矩形的x,y坐标. 我可以在一些图像的帮助下对其进行解释. 下图显示了两个矩形,它们的边界也以各自颜色为名. 将绿色矩形视为组件初始界限,即.中心旋转-45度,为(10,10).现在将重新大小尺寸矩形的顶部边缘,并在下一图2中显示. 从图2中可以理解,y位置从6起降低到4.旋转的矩形也以粉红色显示.请记住,当组件处于旋转角-45度时,我正在进行调整大小,因此,拖动顶部
10 2024-02-03
编程技术问答社区
计算以离散轮廓线为界的分选集的算法
在基于离散网格的平面上(思考:图像的像素),我有一个封闭的轮廓,可以通过: 来表达: 一组2D点(x1,y1);(x2,y2);(x3,y3);... 或4个连接 freeman code ,起点:(x1,y1) + 00001112... (x1,y1) + 00001112... (x1,y1) + 00001112... (x1,y1) + 00001112... 我知道如何从其中一个切换到另一个表示形式.这将是输入数据. 我想获得轮廓的有限的网格坐标集. 考虑这个示例,其中红色坐标为轮廓,而灰色是起点: 如果灰色坐标为(0,0),那么我想要一个向量持有: (1,1),(2,1),(3,1),(3,2) 顺序并不重要,输出向量也可以保持轮廓本身. 选择的语言是C ++,但我对任何现有代码,算法,图书馆,指针等都开放. i虽然那是 opencv ,但我认为它没有提供此算法(但是我错了吗?). 我正在考虑找到边界矩形,然后检查矩形中的
12 2024-01-23
编程技术问答社区
在一个幂集中,所有集合的排列组合的数量是多少?
对于一组大小n,其功率集的大小为2^n.为电源集的每个元素生成所有排列.设置{a, b}的功率集为{{}, {a}, {b}, {a,b}}.在每组中生成所有排列,我们可以得到{(),(a),(b),(a,b),(b,a)}.因此,由2元素集生成的功率集的所有子集排列的数量为5.三个项目集的数字为16.是否有根据n>>?/p> 解决方案 首先,考虑功率集.功率集中的大小k的集数(对于某些0
14 2024-01-23
编程技术问答社区
从一个集合中找到大小为r的组合,其总和值递减
我有一组数字,例如. [100,90,80,70,60,50],想找到大小r=3的所有组合,但按总和减少顺序. 以减少顺序排列数字不起作用. (100, 90, 80) 270 (100, 90, 70) 260 (100, 90, 60) 250 (100, 90, 50) **240** (100, 80, 70) **250** (100, 80, 60) 240 我该如何找到与总和值降低的组合集合. 解决方案 在这里'代码 import itertools array = [100,90,80,70,60,50] size = 3 answer = [] # to store all combination order = [] # to store order according to sum number = 0 # index of combination for comb in itertools.combinations(array,size
12 2024-01-23
编程技术问答社区
Golomb的序列
golomb的自描绘序列{g(n)}是唯一的自然数的非保证序列,因此n在序列中完全出现g(n)次.前几个n的g(n)值是 n 1 2 3 4 5 6 7 8 9 10 11 12 G(n) 1 2 2 3 3 4 4 4 5 5 5 6 鉴于g(10^3)= 86,g(10^6)= 6137. 还鉴于σg(n^3)= 1 找到1 解决方案 根据 oeis ,我们有: G(1) = 1 G(n+1) = 1 + G(n + 1 - G(G(n))) 如果您生成了一段时间,您会注意到重复k的组的大小为k * G(k).例如,重复2次的组的大小是多少? 2 * G(2) = 4: 2 2 3 3.那些重复3次? 3 * G(3) = 6: 4 4 4 5 5 5(6重复4次). 请注意,总和ig(k) = sum i * G(i), i
38 2024-01-23
编程技术问答社区
用if语句简化循环中的求和运算
我很难弄清楚如何将此代码简化为总结,因为它中有一个if语句. sum=0 for (i = 1 to n ){ for (j = 1 to i^2){ if (j % i ==0) then for (k = 1 to j){ sum++ } } } } 我知道IF语句将执行我乘以每个循环. 1%1 = 0 2%2 = 0 4%2 = 0 3%3 = 0 6%3 = 0 9%3 = 0 等等. 这是我到目前为止的内容(请参见下面的链接),请原谅I^2符号,如果没有代表,我无法发布图像.同样,内部总和是i^2不是2选择i. http://www.hostmath.com/show.com/show.aspx?code=%5CSUM%5CLIMITS_CODE = %7BI%3D1%7D%5EN%5CSUM%5climits_%7BJ
6 2024-01-23
编程技术问答社区
如何用Python解决全等系统?
对于问题ax = b(mod c)我做到了,没关系: def congru(a,b,c): for i in range(0,c): if ((a*i - b)%c)== 0 : print(i) 现在我必须求解一个方程系统,其中a =(5x + 7y)和a =(6x + 2y), B = 4和B = 12,C为26. 换句话说: (5x + 7y)²4(mod 26) (6x + 2y)= 12(mod 26) 我该怎么做? 谢谢. 解决方案 对于aX ≡ b (mod m)线性一致性,这是基于Euler定理的更强大的Python解决方案,即使对于非常大的数字也可以很好地工作: def linear_congruence(a, b, m): if b == 0: return 0 if a
20 2024-01-23
编程技术问答社区
解决一个递归T(n) = 2T(n/2) + sqrt(n)
需要一点帮助!这就是我到目前为止使用落后替代的东西: T(n) = 2T(n/2) + sqrt(n), where T(1) = 1, and n = 2^k T(n) = 2[2T(n/4) + sqrt(n/2)] + sqrt(n) = 2^2T(n/4) + 2sqrt(n/2) + sqrt(n) T(n) = 2^2[2T(n/8) + sqrt(n/4)] + 2sqrt(n/2) + sqrt(n) = 2^3T(n/8) + 2^2sqrt(n/4) + 2sqrt(n/2) + sqrt(n) 一般 T(n) = 2^kT(1) + 2^(k-1) x sqrt(2^1) + 2^(k-2) x sqrt(2^2) + ... + 2^1 x sqrt(2^(k-1)) + sqrt(2^k) 到目前为止,这是正确的吗?如果是这样,我将无法弄清楚如何简化它并将其简化为一般公式. 我猜是这样吗?结合术语 = 1 + 2^(k-
70 2024-01-23
编程技术问答社区
寻找包含所有负循环的最小子图
我遇到了以下问题:给定加权的digraph g,我想构造G. 的所有g的最小子图(简单)周期. 我确实知道如何使用Bellman-Ford找到一个负周期,并且我知道有向图中的简单周期的数量是指数. 解决问题的一种幼稚方法是简单地迭代所有简单的周期并选择那些负面的周期,但是我感觉可能会有多项式时间算法.我通过Google发现的大多数文章都是为了找到(而不是全部)负周期. 我希望在Stackoverflow上找到一些专家,这些专家可能会给多项式时间解决方案提供一些提示,或者暗示证明它在多项式时间内无法解决. 非常感谢! 欢呼,罗伯特 解决方案 对于任何对某人感兴趣或遇到类似问题的人:它是NP完成的.感谢Wich将我指向CSTHEORY中的线程. 要查看为什么它是NP完整的,首先要观察到该问题可以说:给定一个具有n个perices的加权定向图G和g上的边缘E,请找出E是否位于A(简单)负周期.如果确实如此,则e应该在h. 现在,让E = E =(
14 2024-01-23
编程技术问答社区
范围内的无平方数的计数
给定两个数字x和y,找到无方形数的计数,而无方形数字除外,除了1以外,无正方形的数字是一个不可分割的数字.例如,10是无方形的,但18不是,因为9 = 32可以除外.很少有正方形的数字是: 1, 2, 3, 5, 6, 7, 10, 11, 13, 14, 15 ... 限制 1 让f(n) = number of non-square-free nu
16 2024-01-23
编程技术问答社区
寻找最小的组件集合的算法
我正在寻找一种算法来解决以下问题.我有一些给定集(A-H)的子集(1-N).我想找到最小的子集集合,使我可以组合所有给定的子集构建.该集合可以包含1-N中不存在的子集. a b c d e f g h 1 1 2 1 1 3 1 1 1 4 1 1 5 1 1 6 1 1 1 1 7 1 1 1 1 8 1 1 1 9 1 1 1 以下是两个可能的集合,其中最小的包含七个子集.我用x. 表示新子集 1 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 1 1 x 1 x 1 x 1 x 1 x 1 1 x