任意の基数での整数から文字列への変換
この質問では、任意の基数で整数を文字列に変換する方法を求めます。指定された基数の文字列から整数を作成できる Python の int(str,base) 関数とは異なり、望ましいアプローチはその逆であり、文字列が整数から構築されることです。
簡単な解決策
直感的に、人々は小規模な拠点 (例: イギリスよりも小さい拠点) への変換に焦点を当てる傾向がありました。アルファベットの長さ)。ただし、この問題では、2 から無限大までの任意の基数に適用できる普遍的な解決策が必要です。
簡単な解決策を以下に示します。
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
この関数は、整数 n と基数 b を次のように受け取ります。 n を基数 b で表す数字のリストを入力して返します。これは、n を b で繰り返し割り、余り (つまり、数字) をリストに集めることで機能します。次に、正しい桁の順序を取得するためにリストが反転されます。
たとえば、67854**15 - 102 を基数 577 に変換するには:
print(numberToBase(67854 ** 15 - 102, 577))
出力:
[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
この結果はさらに他の任意の結果に変換できますbase.
キーポイント
以上が整数を任意の基数の文字列に変換するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。