Язык с

  • Автор темы Guest
  • Дата начала
G

Guest

#1
программа для чередующегося генератора «стоп-пошел», псевдослучайной последовательности, с генерированной, в последовательность равную периоду генератора.
значения LFSR:
(28,3,0)
(32,7,5,3,2,1,0)
(16,5,3,2,0)

C++:
#include <cstdlib>
#include <iostream>
using namespace std;
int main (void)LFSR1
{
static unsigned long ShiftRegister = 1;

ShiftRegister = ((((ShiftRegister >> 31)
^ (ShiftRegister >> 6)
^ (ShiftRegister >> 4)
^ (ShiftRegister >> 2)
^ (ShiftRegister >> 1)
^ ShiftRegister)& 0x00000001) <<31)
| (ShiftRegister >> 1);
return ShiftRegister & 0x00000001;
}

//если выход LFSR1=1,то тактируется LFSR2
//а если LFSR1=0,то тактируется LFSR3

int main (void)LFSR2
{
static unsigned long ShiftRegister = 1;

ShiftRegister = ((((ShiftRegister >> 31)
^ (ShiftRegister >> 6)
^ (ShiftRegister >> 4)
^ (ShiftRegister >> 2)
^ (ShiftRegister >> 1)
^ ShiftRegister)& 0x00000001) <<31)
| (ShiftRegister >> 1);
return ShiftRegister & 0x00000001;
}

int main (void)LFSR3
{
static unsigned long ShiftRegister = 1;

ShiftRegister = ((((ShiftRegister >> 15)
^ (ShiftRegister >> 4)
^ (ShiftRegister >> 2)
^ (ShiftRegister >> 1)

^ ShiftRegister)& 0x00000001) <<15)
| (ShiftRegister >> 1);
return ShiftRegister & 0x00000001;
}

//Выход генератора LFSR2 xor LFSR3
Суть в том, если выход LFSR1=1,то тактируется LFSR2
а если LFSR1=0,то тактируется LFSR3..


правильно ли написала? и как сделать так,чтобы при выходе LFSR1=1, тактировался LFSR2
а если LFSR1=0,то тактируется LFSR3..?...