作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想根据数量级对任何整数 >= 10
进行取整。例如,
15 -> 10
600 -> 100
8,547 -> 1,000
32,123 -> 10,000
3,218,748 -> 1,000,000
544,221,323,211 -> 100,000,000,000
....
我正在考虑将 int
解析为 string
并计算那里有多少位数字,然后将新字符串设置为 1
+ 一堆零并转换回数字。
function convert(n) {
nStr = n.toString();
nLen = nStr.length;
newStr = "1" + Array(nLen).join("0");
return parseInt(newStr);
}
有没有更数学的方法来做到这一点?我想避免在 int
和 str
之间进行转换,因为当 n
很大并且我想这样做时,它可能会浪费大量内存和磁盘空间运行此函数一百万次。
最佳答案
所以您正在寻找数量级。
function convert(n) {
var order = Math.floor(Math.log(n) / Math.LN10
+ 0.000000001); // because float math sucks like that
return Math.pow(10,order);
}
简单^_^ 数学真棒!然而,浮点不精确不是。请注意,这在某些边缘情况下并不完全准确,但会尽力而为。
关于数量级的 JavaScript 底数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917074/
我目前正在尝试找出二次算法、三次算法和指数算法之间的主要数量差异。 我不明白“定量”是什么意思,它真正问的是什么?我试着搜索这方面的信息,但没有运气。 谢谢。 最佳答案 当您使用大 O 表示法来估计算
我正在尝试使用 c 语言中的 malloc 来为我们分配大量数据。当我将数组大小增加到超过特定值时,程序终止说“program.c”停止工作。我想知道正确的方法将大量数据(这里是 4GB)分配给 c
我们运行了附加的测试。结果一致表明,通过 Array by index 访问比通过 Map by key 访问快 10 倍。这种数量级的差异让我们感到惊讶。 我们的 Map 键是 java.lang.
我是一名优秀的程序员,十分优秀!