我希望能够有一个变量“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。