如何找到与另一个数字最接近的数字,即2的幂?

丹尼尔·克维斯特(Daniel Kvist)

我正在为我的2D游戏创建一个世界生成器,该游戏使用Java中的Diamond-Square算法,并且听说它仅在2 n +1(幂)个数下有效(或至少有效)二)。

用调用生成世界的方法generateWorld(width, height),但会产生问题。我希望能够输入一个,如果输入宽度不是width,该函数将找到最接近的数字,该数字是2的幂。我真的不知道该怎么做,因此非常感谢所有帮助!

总结:如果一个数不是2功率,我想找到最近的号码的那一个,这二的幂。

哈罗德

您可以向上舍入为2的更高幂(如果已经是2的幂,则不能更改),如下所示:

x = x - 1;
x |= x >> 1;
x |= x >> 2;
x |= x >> 4;
x |= x >> 8;
x |= x >> 16;
return x + 1;

如果不存在下一个更高的2的幂,则输入为0。

另一位候选人只不过是一半。然后取最近的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

生成最接近另一个数字百的一系列数字

如何计算一个数字是否是另一个数字的幂?

在PostgreSQL中找到最接近一个数字的数字

在颤动中将数字显示为幂或另一个数字

如何根据两个数据从一个数据帧到另一个数据找到最接近的匹配?

将列表中的每个数字四舍五入到另一个列表中最接近的数字

如何找到一个小于且最接近数组X的数字?

如何找到日期最接近另一个日期的值

您能否将除以/乘以另一个数字的变量四舍五入到最接近的百分位数?

向量化为另一个数组中的每个元素在数组中找到最接近的值

如何计算包含一个数字但不包含另一个数字的数字?

如何找到一个向量中与另一个向量最接近(最近)的值?

数字在另一个数字的5%以内

如何找到最接近某个数字的数组元素?

在另一个表上将数字四舍五入到最接近的值

c# - 如何构建一个算法来找到一个组合,哪个总和最接近一个数字,其差在c#的范围内

如何在一组点中找到最接近另一个点的点?

如何确定一个数字是否在另一个数字的某个范围内

如何检查一个数字是否可被另一个数字整除(Python)?

我如何检查一个数字是高于还是低于另一个数字?

如何找到与一个数字相连的数字?

如何过滤掉包含数字到另一个数字的div?

如何将用破折号“-”分隔的数字与另一个数字相乘?

如何在另一个数字的基础上给数字加上零?

如何将数字的格式复制到另一个数字?

如何将列表中的数字更改为另一个数字

找到最接近另一个的两个点

给定一个数字,将小数舍入到最接近的增量

如何在大型排序数组中高效找到最接近另一个值X的值