Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで特定の数のグレイコードを変換するプログラム


番号nがあるとすると、その指定された番号のグレイコード(つまり、n番目のグレイコード)を見つける必要があります。私たちが知っているように、グレイコードは、連続する各数値の値が正確に1ビット異なるように2進数を並べ替える方法です。いくつかのグレイコードは次のとおりです:[0、1、11、10、110、111など]

したがって、入力がn =12の場合、12はバイナリで(1100)であるため、出力は10になり、対応するグレイコードは(1010)になり、10進数は10に相当します。

これを解決するには、次の手順に従います。

  • 関数solve()を定義します。これにはnがかかります
  • nが0と同じ場合、
    • 0を返す
  • x:=1
  • x * 2 <=nの場合、do
    • x:=x * 2
  • return x + resolve(2 * x --n --1)

理解を深めるために、次の実装を見てみましょう。

class Solution:
   def solve(self, n):
      if n == 0:
         return 0
      x = 1
      while x * 2 <= n:
         x *= 2
      return x + self.solve(2 * x - n - 1)

ob = Solution()
n = 12
print(ob.solve(n))

入力

12

出力

10

  1. n番目のカタラン数のPythonプログラム

    この記事では、n番目のカタラン数の計算について学習します。 カタラン数 再帰式-によって定義される自然数のシーケンスです。 $$ C_ {0} =1 \:and \:C_ {n + 1} =\ displaystyle \ sum \ Limits_ {i =0} ^ n C_ {i} C_ {n-i} for \:n \ geq0; $$ n =0、1、2、3、…の最初のいくつかのカタラン数は 1、1、2、5、14、42、132、429、..............です。 .... カタラン数は、再帰と動的計画法の両方で取得できます。その実装を見てみましょう。 アプローチ1:再

  2. 与えられた数がフィボナッチ数であるかどうかをチェックする方法のためのPythonプログラム?

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数nが与えられたら、nがフィボナッチ数であるかどうかを確認します n番目のフィボナッチ数は前の2つのフィボナッチ数の合計であることは誰もが知っています。しかし、それらは漸化式以外の興味深い関係も提供します。 (5 * n2 + 4)または(5 * n2 – 4)が完全な正方形である場合に限り、数値は本質的にフィボナッチです。 このプロパティを使用して、数値がフィボナッチであるかどうかを確認します。 では、Pythonスクリプトの実装を見てみましょう- 例 import math # if x is p