Tag: math

计算(a ^ b)%MOD

我想编写计算pow(a,b)%MOD的值。 我使用C ++来编码。 但问题是b的价值可以非常大。 我知道日志(二)时间复杂性的方法。 但是,b的值可能不适合C ++的“long long”数据types。 例如b可以是10亿次斐波那契数。 精确计算这样一个大数字本身是不可能的(在时间限制内)。 PS: pow(a,b)表示a * a * a * a * … b次。 X%MOD表示MOD除以X得到的余数。

使用M_PI与C89标准

我使用C并尝试访问常量M_PI(3.14159 …)。 我已经导入了math.h头文件,但M_PI常量仍未定义。 通过一些searchStackOverflow我发现我需要添加#define _USE_MATH_DEFINES到我的代码(请参阅下面的示例代码)。 这在正常编译时工作正常,但我需要能够用std=c89标志来编译我正在做的工作。 我应该如何从一些C89代码访问M_PI?

Python的负数的立方根

有人可以帮助我find一个解决scheme,如何计算使用Python的负数的立方根? >>> math.pow(-3, float(1)/3) nan 这是行不通的。 负数的立方根是负数。 任何解决scheme

计算两点之间的最短路线

过去几周,我一直在使用nodejs和websockets在多人游戏上进行HTML5游戏。 我一直陷在这个问题上。 想象一下,我有一个数组( 如下所示 )实现这个tileheet映射。 1或棕色的瓷砖 – 有一个障碍,玩家不能通过它。 0或绿色瓷砖 – 是允许玩家移动的自由path。 通过以下方式访问地图上的任何图块: array[x][y] 我想创build最快的algorithm来找出地图两点之间的最短路线(如果有的话)。 你将如何解决这个问题? 我知道这是常见的问题。 例如 : 在位置(1,7)的玩家用一些AI来发射子弹,这个AI会在位置(6,0)向敌方玩家发射。 子弹必须计算两个玩家之间的最短路线,如果没有,就会爆炸在墙上。 问题 : 如何有效地find两点之间的最短路线?

计算快速日志库2天花板

什么是计算(long int) ceiling(log_2(i))的快速方法,input和输出是64位整数? 有符号或无符号整数的解决scheme是可以接受的。 我怀疑最好的方法将是一个类似于这里发现的有点扭曲的方法,而不是尝试我自己的,我想使用一些已经testing好的东西。 一般的解决scheme将适用于所有正面的价值。 例如,2,3,4,5,6,7,8的值是1,2,2,3,3,3,3 编辑:到目前为止,最好的路线似乎是使用任何数量的快速存在的bithacks或注册方法计算整数/楼层日志基数2(MSB的位置),然后添加一个如果input不是功率二。 (n&(n-1))幂的快速按位检查。 编辑2:整数对数和前导零方法的一个很好的来源是Henry S. Warren在Hacker's Delight中的5-3和11-4节。 这是我发现的最完整的治疗方法。

通用C#代码和Plus运算符

我正在写一个类,对C#中的每个基本数字types进行基本相同的计算。 虽然实际计算更为复杂,但将其视为计算多个值的平均值的一种方法 class Calc { public int Count { get; private set; } public int Total { get; private set; } public int Average { get { return Count / Total; } } public int AddDataPoint(int data) { Total += data; Count++; } } 现在要支持double,float和定义operator +和operator /的其他类的相同操作,我的第一个想法就是简单地使用generics: class Calc<T> { public T Count { get; […]

为什么用一个整数来分隔一个浮点数返回0.0?

所以如果我有一个范围的数字'0 – 1024',我想把他们带到'0 – 255',math将决定分割input的最大input将是(在这种情况下1024),这将给我在0.0 – 1.0之间的数字。 然后乘以目标范围(255)。 这是我想要做的! 但是出于某种原因,在Java中(使用处理)它将始终返回值为0。 代码将如此简单 float scale; scale = (n/1024) * 255; 但是我只得到0.0。 我试过double和int。 一切都无济于事。 为什么!?

N组合

有一种直接的方法来获得nCr所有组合的有序集合的第N个组合吗? 例如:我有四个元素:[6,4,2,1]。 所有可能的组合,一次取三个:[[6,4,2],[6,4,1],[6,2,1],[4,2,1]]。 有没有一个algorithm,可以给我例如第三个答案,[6,2,1],在有序的结果集,没有列举所有以前的答案?

JavaScript数字分成单独的数字

嗨,我想解决一个math问题,我拿一个数字,例如45或111,然后将数字分成不同的数字,例如4 5或1 1 1.然后我将每个数字保存到一个变种运行一个方法。 有没有人没有如何将一个数字分成个人数字。 例如,我有一个在数组上运行的循环: for (var i = 0; i < range.length; i++) { var n = range[i]; } 对于每个号码,我想分裂它的数字,并将它们加在一起?

Python整数到下一百

似乎应该已经被问过数百次(双关都是好玩的),但我只能find四舍五入的function。 我如何四舍五入整数,例如: 130 -> 200 ?