gpt4 book ai didi

ruby - Number Bases & Ruby - 递增用于特定数字基数的变量的最快方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 08:49:48 26 4
gpt4 key购买 nike

我希望能够有一个可以递增的变量“num”,并且可以理解它基于什么数字。

例如,如果 num 以 7 为底,等于 66,如果我做 num+= 1,num 应该设置为 100。

一个解决方案涉及到 to_s 和 to_i,但是,正在进行如此多的转换,似乎效率不高。

def increment_with_base(number, base)
number_base_ten = number.to_s.to_i(base)
number_base_ten += 1

number_base_ten.to_s(base).to_i
end

还有比这更合适的吗?是否可以告诉 Ruby 我正在使用哪个数字基数,这样我就不必进行那么多转换?

正如我在下面的评论中提到的,我非常熟悉数字基数——只是不熟悉 Ruby 中的数字基数。我实际上需要显示每个递增的数字(而且我会递增很多)。

如果您知道问题的答案,则无需阅读下一部分。但是,我添加它是为了阐明我为什么要做我正在做的事情。除非您正在寻找更多信息,否则无需阅读以下内容。

有关更多信息,我正在做的是生成一组图,其中每个节点只有 0 或 1 个转换。每个节点都由一个数字表示,特定数字表示有向边指向哪个其他节点。例如,数字 4.3.1.0 是一个有四个节点的图,其中第一个节点有到第四个节点的边,第二个有到第三个的边,第三个有到第一个的边,第四个节点没有有任何过渡。

因此,如果我想生成所有四个节点图,其中每个节点只有一个退出边,我需要从 0.0.0.0 到 4.4.4.4 计数。

最佳答案

基数对算术无关紧要。数字只是数字,所有基数只是表示它们的方式略有不同。例如,667(xy 表示 x 以 y 为基数编写)是 4810 并且无论您在添加时考虑的基数是什么一个,结果总是相同的数字:1007 = 4910 = 3116 = ...等等其他基础(甚至是非常奇怪的基础,如黄金比例基础)。这是相同的操作,具有相同的结果。

只需对数字 进行算术运算,并且只在真正重要的时候才担心基数(例如,在为用户呈现时)。即使您需要在每次更新后显示它,您仍然可以节省几次转换,这不仅速度更快,而且更简单、更清晰。

关于ruby - Number Bases & Ruby - 递增用于特定数字基数的变量的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com