質問

私は0のセットと1が最初にsample(c(0,1), n, replace=TRUE)で作成されたリストとして表されます。ここで、nは私の2進数の長さです。私は現在BCDコンバータを使用してバイナリ番号を10進数に変換するために、これはここで見る:

BCD.to.Decimal <- function(binaryNumb)
{
  binaryLength = length(binaryNumb)
  decimalNumb = 0
  for(i in 1:binaryLength)
  {
    if ( binaryNumb[i] == 1)
      decimalNumb = decimalNumb + 2^(binaryLength - i)
 }

  decimalNumb
}
.

代わりに私のbcd.to.decimalコンバータと同じジョブを行うが、代わりにグレイコードを使用するgreycode.to.decimal変換器を使用します。

注:これにはスピードが問題になり、これを可能な限り効率的な方法でやりたいと思います。私のBCDコンバータはおそらく最も効率的ではないことに気付くことが最も簡単です。

グレイコードとは何ですか?>

他のヒント

まあ、cでは、そのWikiページに変換アルゴリズムがありますので、ポートする必要があります。
Wikiページでは、このリンクがあります。 http://aggregate.org/magic/#gray%20code%20conversion これは多くの変換アルゴリズムをリストします。そのほとんどは、コーディングするのはかなり簡単です。

BTW、OHは何でも:GA::grey2binaryGA::binary2greyはすでに存在します。BAH: - )

eta - 私はMr.Google経由でこれを見つけるのに十分ラッキーでしたが、一般的にPackage sosは素晴らしいR検索ツールです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top