Tag: math

从数字中删除不重要的尾随零?

我错过了一个标准的API调用,从数字中删除尾随无关紧要的零吗? 防爆。 var x = 1.234000 // to become 1.234; var y = 1.234001; // stays 1.234001 Number.toFixed()和Number.toPrecision()不是我所期待的。

为什么这个简单的洗牌algorithm产生有偏见的结果? 什么是一个简单的原因?

看来这个简单的洗牌algorithm会产生有偏见的结果: # suppose $arr is filled with 1 to 52 for ($i < 0; $i < 52; $i++) { $j = rand(0, 51); # swap the items $tmp = $arr[j]; $arr[j] = $arr[i]; $arr[i] = $tmp; } 你可以试试它…而不是使用52,使用3(假设只有3张卡被使用),并运行10000次,并计算结果,你会看到结果是倾向于某些模式… 问题是…它会发生什么简单的解释? 正确的解决scheme是使用类似的东西 for ($i < 0; $i < 51; $i++) { # last card need not swap […]

简化小数到分数的algorithm

我试着写一个algorithm来简化小数到小数部分,并意识到它不是太简单。 令人惊讶的是,我在网上查找,发现所有代码太长,或在某些情况下无法使用。 更令人讨厌的是,他们不适用于循环小数。 然而,我想知道是否会有一位math家/程序员理解所有涉及将小数简化为小数的过程。 任何人?

Python是如何实现内置函数pow()的?

我必须编写一个程序来计算a**b % c ,其中b和c都是非常大的数字。 如果我只是使用a**b % c ,那真的很慢。 然后我发现内置函数pow()可以通过调用pow(a, b, c) 。 我很想知道Python是如何实现这个的? 或者我可以在哪里find实现此function的源代码文件?

将Excel列字母转换为其数字的algorithm是什么?

我需要一个algorithm来将Excel列字母转换为适当的数字。 这将被写入的语言是C#,但任何会做,甚至伪代码。 请注意,我将把这个在C#中,我不想使用办公室的DLL。 对于'A'预期的结果将是1 对于'AH'= 34 对于“XFD”= 16384

舍入整数除法(而不是截断)

我很想知道如何将一个数字舍去到最接近的整数。 例如,如果我有: int a = 59 / 4; 以浮点计算得到14.75; 我怎么能把这个数字作为15存储在“a”中?

如何使scipy.interpolate给出超出input范围的外推结果?

我试图移植一个使用手动内插器(由math家同事开发)的程序来使用scipy提供的内插器。 我想使用或包装scipy插入器,以便它尽可能接近旧插值器的行为。 这两个函数之间的主要区别在于,在我们的原始插补器中 – 如果input值高于或低于input范围,我们的原始插补器将推断结果。 如果你用scipy插入器试试这个,会引发一个ValueError 。 以这个程序为例: import numpy as np from scipy import interpolate x = np.arange(0,10) y = np.exp(-x/3.0) f = interpolate.interp1d(x, y) print f(9) print f(11) # Causes ValueError, because it's greater than max(x) 是否有一个明智的方法来使得它不会崩溃,最后一行将简单地进行线性外推,继续将第一个和最后两个点定义的梯度延续到无穷大。 请注意,在真正的软件中,我并没有使用exp函数 – 这里只是为了说明!

假设GUID始终是唯一的,是否安全?

我知道发生冲突的可能性很小,但是如果我生成了一批1000个GUID(例如),那么假设它们都是唯一的以保存每一个GUID,那么是否安全? 奖金的问题 testingGUID唯一性的最佳方法是什么? 布隆filter可能?

C,Python – 模(%)操作的不同行为

我发现,根据使用的语言,相同的mod操作会产生不同的结果。 在Python中: -1 % 10 产生9 在C它产生-1 ! 1)哪一个是正确的模? 2)如何使C中的mod操作与Python中一样?

什么是最快的分解algorithm?

我已经写了一个试图findAmicable Pairs的程序。 这就要求find合适的数字除数。 这是我目前的sumOfDivisors()方法: int sumOfDivisors(int n) { int sum = 1; int bound = (int) sqrt(n); for(int i = 2; i <= 1 + bound; i++) { if (n % i == 0) sum = sum + i + n / i; } return sum; } 所以我需要做很多因子分解,并且开始成为我应用程序中的真正瓶颈。 我在MAPLE中input了一个很大的数字,并将其快速分解。 什么是更快的分解algorithm之一?