ホームページ >バックエンド開発 >Python チュートリアル >整数を任意の基数の文字列に変換するにはどうすればよいでしょうか?

整数を任意の基数の文字列に変換するにはどうすればよいでしょうか?

DDD
DDDオリジナル
2024-12-13 18:25:10681ブラウズ

How can integers be converted into strings in arbitrary bases?

任意の基数での整数から文字列への変換

この質問では、任意の基数で整数を文字列に変換する方法を求めます。指定された基数の文字列から整数を作成できる 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.

キーポイント

  • この解決策の単純さは、特定の基数の数値が桁のリストで表現できるという認識にあります。各桁は基数の累乗を表します。
  • この関数は、36 より大きい基数 (
  • さまざまな基数での数値の概念を理解することは、このメソッドの動作を理解するために重要です。

以上が整数を任意の基数の文字列に変換するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。