Questions tagged «binary-arithmetic»


2
传播输入的功能
我想知道从n位数字到n位数字的函数fff是否具有以下特征: fff应该是双射的 无论fff和f−1f−1f^{-1}应该是可计算的相当快 fff应该返回与其输入没有显着相关性的数字。 原因是: 我想编写一个对数据进行操作的程序。数据的某些信息存储在二进制搜索树中,其中搜索关键字是字母的符号。随着时间的流逝,我在字母表中添加了更多符号。新符号只是获得下一个可用的免费号码。因此,树将始终对较小的键具有较小的偏差,这将导致比我认为需要的更多的重新平衡。 我的想法是与到裂伤符号数fff使得它们的整个范围内的广泛普及[0,264−1][0,264−1][0,2^{64}-1]。由于符号号仅在输入和输出期间才有关系,而符号输入只发生一次,因此应用此功能应该不会太昂贵。 我曾考虑过Xorshift随机数生成器的一次迭代,但是尽管从理论上讲应该是可行的,但我真的不知道一种撤消它的方法。 有人知道这样的功能吗? 这是一个好主意吗?


1
计算大整数的位数
给定二进制表示的两个整数和n,计算x n的位大小的复杂度是多少?xxxnnnxnxnx^n 这样做的一种方式是计算通过计算的近似日志2(X )以足够的精度。看来可以在O (M (k )log k )中完成以k位精度计算log 2(x ),其中M (1+⌊log2(xn)⌋=1+⌊nlog2(x)⌋1+⌊log2⁡(xn)⌋=1+⌊nlog2⁡(x)⌋1+\lfloor \log_2(x^n)\rfloor=1+\lfloor n\log_2(x)\rfloorlog2(x)log2⁡(x)\log_2(x)log2(x)log2⁡(x)\log_2(x)kkkO(M(k)logk)O(M(k)log⁡k)O(M(k)\log k)是计算长度为 k的两个整数的乘积所需的时间。如果 s是 x和 n 的位大小的边界(如果我没有出错),这将产生一个复杂度大约为 O (s log 2 s )的(不是特别简单的)算法。M(k)M(k)M(k)kkkO(slog2s)O(slog2⁡s)O(s\log^2 s)sssxxxnnn 我们可以击败,其中s是x和n的大小(如果它们具有可比较的大小)?是否有一种简单的算法可以使这种复杂性更好?O(slog2(s))O(slog2⁡(s))O(s\log^2(s))sssxxxnnn 注意:我对诸如图灵机之类的理论模型的复杂性感兴趣。

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} 还有其他想法吗?
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.