私は、javascript で quine mcclusky アルゴリズムをコーディングしています。入力は 0、2、6、7 などの 10 進数として取りました。コードには 1 から 5 までの変数を含めることができます。1 は a または 'a' であり、5 は a、b、c、d、e です。
私のコードでは、入力をバイナリ値に変換しました。たとえば、0、2、6、7 の場合。2 進数に相当する ["000"、"010"、"110"、"111"] の配列があります。
1 を数える別のロジックを作成しました。バイナリ配列のすべての要素を取得し、1 の数を数えます。これらは、次の方法でオブジェクトに保存されます。
{0:"000",1:"010",2:"110",3:"111"}
これはそれほど難しいことではないかもしれませんが、入力が 0、2、4、3、5 の場合、次のようなループを実行します。
function onesgrp(str)
{
var tmp= str.split(""); //splits the string for example "010" into [0 1 0]
for(i=0;i<len.str;i++)
{
if(tmp[i]==1)
index++;
else
continue;
}
}
This function will tell how many 1's each string has and index value will represent the no. of 1's.
この文字列をオブジェクトの「インデックス」位置に挿入したい。の場合index=2
、配列をインデックス 2 などに挿入します。次に、 を含む別の文字列がある場合はindex=2
、それを obj の位置 2 に追加して、前の文字列を上書きしないようにします。最後に、「インデックス」番号が 1 の文字列を持つ各インデックスを持つ obj があります。しかし問題は、長さの変数が異なることです。
誰でもこれを行う方法を教えてもらえますか? quine mcclusky アルゴリズムの JavaScript バージョンをいくつか見つけましたが、理解するのが難しすぎます。私は初心者なので、高度な JavaScript にはあまり慣れていません。quine mccluskey を使用したロジックの最小化のためのより簡単なコードを知っている人はいますか? 私は本当に義務付けられます。
私の質問の別の説明:
私は、javascript で quine mcclusky アルゴリズムをコーディングしています。配列の各要素に対して、バイナリ文字列の配列を持つようにコードを書き込もうとしています。文字列内の 1 の数を数えます。最大 5 つまでの可変長文字列を使用できますが、入力ごとに、配列内のすべての文字列は同じ長さになります。入力ごとに、オブジェクト内の「1 の数」で文字列をグループ化したいと考えています。たとえば、バイナリ文字列があり
0001
、その中に「1」が 1 つあります。この文字列は、オブジェクトのインデックス 1 に保存されます。次に、別の文字列0010
をインデックス 1 に追加する必要がありますが、以前に保存した文字列を上書きしてはなりません。私は例えば1010
オブジェクトのインデックス 2 に移動します。配列のすべての文字列をオブジェクトに割り当てた後、オブジェクトの各インデックスは、そのキー位置の文字列の「1」の数を示します。obj[0]
要素を他のキー位置と 比較したいのですが、要素の位置が 1 つだけ異なり0000
、たとえばビット位置が 1 つ異なる場合は、別の obj0001
に保存したいと考えています。0000
すべての主要な含意者が見つかるまで、上記の方法に従います。