インクリメントできる変数「num」を持ち、その基数を理解できるようにしたいと思います。
たとえば、num が底 7 で 66 に等しい場合、num+= 1 を実行すると、num を 100 に設定する必要があります。
1 つの解決策には 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 は 4 つのノードを持つグラフで、最初のノードは 4 番目のノードに対してエッジを持ち、2 番目は 3 番目のノードに対してエッジを持ち、3 番目は最初のノードに対してエッジを持ち、4 番目のノードは持っていません。遷移があります。
したがって、各ノードが 1 つのエッジしか持たない 4 つのノード グラフをすべて生成したい場合は、0.0.0.0 から 4.4.4.4 までカウントする必要があります。