java实现线性反馈移位寄存器LFSR(附完整源码)
时间: 2023-11-09 11:05:33 浏览: 234
下面是一个简单的Java实现线性反馈移位寄存器LFSR的代码:
```java
public class LFSR {
private int[] register;
private int tap;
public LFSR(int n, int tap) {
register = new int[n];
this.tap = tap;
for (int i = 0; i < n; i++) {
register[i] = (int) (Math.random() + 0.5);
}
}
public int generate() {
int r = register[0] ^ register[tap];
for (int i = 0; i < register.length - 1; i++) {
register[i] = register[i + 1];
}
register[register.length - 1] = r;
return r;
}
}
```
这个LFSR类有两个属性:register和tap。register是一个包含n个元素的整型数组,tap是一个整数,代表LFSR的反馈位。构造函数生成一个随机的初始状态。generate()方法执行一次LFSR的移位和反馈操作,并返回当前的输出位。
使用示例:
```java
LFSR lfsr = new LFSR(16, 11);
for (int i = 0; i < 20; i++) {
System.out.print(lfsr.generate());
}
```
这个例子创建了一个16位的LFSR,反馈位为11,然后执行20次generate()方法输出LFSR的输出序列。
阅读全文