私はC++が初めてです。0 から 0、0 から 1、1 から 0、1 から 1 への遷移数を 9 ビット シーケンスで計算したいと考えています。次のコードを書きました。
int main {
srand((unsigned)time(0));
unsigned int x;
for (int i=0:i<=512;i++) // loop-1
{
x=rand()%512;
bitset<9>bitseq(x);
for(int j=0;j<=bitseq.size();j++) // loop-2
{
bool a= bitseq.test(j);
bool b= bitseq.test(j+1)
if ((a==0)&(b==0)==0)
{
transition0_0 = transition0_0 + 1; // transition from 0 to 0
}
else if ((a==0)&(b==1)==0)
{
transition0_1 = transition0_1 + 1;
else if ((a==1)&(b==0)==0)
{
transition1_0 = transition1_0 + 1;
else
{
transition1_1 = transition1_1 + 1;
cout<<transition0_0<<" "<<transition0_1<<endl;
cout<<transition1_0<<" "<<transition1_1<<endl;
}
}
誰か次のことを教えてください
- ループ 2 の最後のビット値を保存して、最後のビットセット出力の最後のビットから次のビットセット出力の最初のビットへの遷移を確認する方法は?
- これがうまくいかない場合、ベクトルに保存し、イテレータを使用して遷移を確認するにはどうすればよいですか?