Questions tagged «arithmetic»

有关在具有硬件或算法的计算机上实现基本算术运算的问题。通常假定数字为二进制表示形式,请添加[floating-point]标签以对浮点表示形式中的数字进行算术运算。

9
为什么加法运算与现代处理器中的按位运算一样快?
我知道在现代处理器上按位运算是如此之快,因为它们可以并行地以32或64位进行操作,因此按位运算仅需一个时钟周期。但是加法是一个复杂的操作,至少包含一个(可能多达十二个)按位运算,因此我自然认为它会慢3-4倍。经过一个简单的基准测试,我惊讶地发现加法运算与任何按位运算(XOR,OR,AND等)完全一样快。谁能阐明这一点?

3
阶乘算法比朴素乘法更有效
我知道如何使用迭代和递归(例如n * factorial(n-1),例如)为阶乘编码。我读过一本教科书(没有给出任何进一步的解释),发现通过递归将因式分解成两半,有一种更有效的编码方式。 我知道为什么会这样。但是我想尝试自己编码,但是我不知道从哪里开始。一位朋友建议我先写基本案例。我当时在考虑使用数组,以便可以跟踪数字...但是我真的看不出设计这种代码的任何出路。 我应该研究哪种技术?

6
从任何基数转换为任何基数而不经过基数10的背后的数学运算?
我一直在研究从任何基础转换为任何基础的数学运算。这比确认我的结果更重要。我在mathforum.org上找到了我的答案,但是我仍然不确定我是否正确。我可以从较大的基数转换为较小的基数,因为这只是将第一位数字乘以要添加下一位数字重复的基数即可。我的问题是从较小的基数转换为较大的基数时出现的。在执行此操作时,他们会讨论如何将所需的较大基准转换为较小的基准。一个例子是从4到6的基数,您需要将数字6转换为4到12的基数。然后执行与从大到小转换时相同的操作。我遇到的困难是,似乎您需要知道另一个数中的一个。因此,我需要知道4中的6是什么。这在我脑海中产生了一个大问题,因为那时我需要一个表。有谁知道以更好的方式做到这一点的方法。 我以为基本转换会有所帮助,但找不到任何有效的方法。从我发现的站点来看,它似乎允许您从基数转换为基数,而无需经过10底,但是您首先需要知道如何将第一个数字从基数转换为基数。这使得它毫无意义。 评论员说我需要能够将字母转换为数字。如果是这样,我已经知道了。但是那不是我的问题。我的问题是为了将大基数转换为小基数,我需要先将我拥有的基数转换为所需的基数。这样做我无法达到目的,因为如果我能够将这些碱基转换为其他碱基,那么我已经解决了我的问题。 编辑:我已经找到了如何从小于或等于10的基数转换为小于或等于10的其他基数的方法。我也可以从大于10的基数转换为小于等于10的任何基数。当从大于10的基数转换为大于10的基数时,或者从小于10的基数变为大于10的基数时,问题就开始了。我不需要代码,我只需要它后面的基本数学即可。适用于代码。

2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

6
什么是GCD最有效的?
我知道Euclid算法是获取正整数列表的GCD(最大公约数)的最佳算法。但是实际上,您可以通过多种方式对该算法进行编码。(就我而言,我决定使用Java,但C / C ++可能是另一种选择)。 我需要在程序中使用最高效的代码。 在递归模式下,您可以编写: static long gcd (long a, long b){ a = Math.abs(a); b = Math.abs(b); return (b==0) ? a : gcd(b, a%b); } 在迭代模式下,它看起来像这样: static long gcd (long a, long b) { long r, i; while(b!=0){ r = a % b; a = b; b = …


4
浮动误差导致的不平等
至少在Java中,如果我编写以下代码: float a = 1000.0F; float b = 0.00004F; float c = a + b + b; float d = b + b + a; boolean e = c == d; 价值将。我认为这是由于以下事实造成的:在精确表示数字的方式中,浮点数非常有限。但我不明白为什么只是改变的位置可能会导致这种不平等。ËËeF一升小号Ëfalsefalse一种aa 我在第3行和第4行中将 s都减小为1,但是的值变为:bbbËee牛逼[R ü ètruËtrue float a = 1000.0F; float b = 0.00004F; float c = a + b; …


3
加法的时间复杂度
维基百科将加法的时间复杂度列为,其中是位数。nñnnñn 这是严格的理论下限吗?还是这仅仅是当前最快的已知算法的复杂性。我想知道,因为加法的复杂性强调了所有其他算术运算和使用它们的所有算法。 从理论上讲不可能获得在中运行的加法算法?还是我们必须将线性复杂度相加。o(n)Ø(ñ)o(n)

9
表示实数而不会丢失精度
当前浮点(ANSI C浮点数,双精度)允许表示实数的近似值。 有没有办法表示实数而没有错误? 这是我的一个主意,绝非完美。 例如,1/3是0.33333333 ...(以10为底)或o.01010101 ...(以2为底),也是0.1(以3为底) 是实现这个“结构”的好主意: base, mantissa, exponent 所以1/3可能是3 ^ -1 {[11] = base 3, [1.0] mantissa, [-1] exponent} 还有其他想法吗?


1
为什么浮点模量精度很重要?
当前,大多数Smalltalk方言都实现了幼稚的不精确浮动模数(fmod / remainder)。 我刚刚进行了更改,以提高Squeak / Pharo并最终提高了其他Smalltalk对标准(IEEE 754,ISO / IEC 10967)的遵守程度,就像我对其他最新浮点运算所做的那样。 但是,对于采用这些更改,我希望遵守标准不足以说服我的同龄人,因此解释一下在什么情况下这种准确性确实很重要将对我有很大帮助。到目前为止,我自己找不到一个很好的例子。 这里有谁知道为什么/何时/何地(IOW在哪种算法中)如此精确的模数很重要吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.