Vb.net 斐波那契移位寄存器伪随机数发生器

Vb.net 斐波那契移位寄存器伪随机数发生器,vb.net,random,fibonacci,bit-shift,Vb.net,Random,Fibonacci,Bit Shift,我试图让下面的代码用于斐波那契移位寄存器以生成伪随机数。似乎无法让它工作,所以有任何明显的问题(?) 共享函数Main()为整数 Dim start_状态为UShort=&HACE1UI'任何非零启动状态都可以工作。 尺寸lfsr为UShort=启动状态 模糊位为UInteger 变暗周期为UInteger=0 在lfsr启动时执行 "水龙头:16141311 ;;反馈多项式:x^16+x^14+x^13+x^11+1 位=((lfsr>>0)Xor(lfsr>>2)Xor(lfsr>>3)Xo

我试图让下面的代码用于斐波那契移位寄存器以生成伪随机数。似乎无法让它工作,所以有任何明显的问题(?)

共享函数Main()为整数
Dim start_状态为UShort=&HACE1UI'任何非零启动状态都可以工作。
尺寸lfsr为UShort=启动状态
模糊位为UInteger
变暗周期为UInteger=0
在lfsr启动时执行
"水龙头:16141311 ;;反馈多项式:x^16+x^14+x^13+x^11+1
位=((lfsr>>0)Xor(lfsr>>2)Xor(lfsr>>3)Xor(lfsr>>5))和1

lfsr=(lfsr>>1)或(bit如@dummy的注释所示

Do While lfsr <> start_state
...
Loop
在VB.NET中是

Do
...
Loop While lfsr <> start_state
Do
...
lfsr启动时循环\u状态

<代码> >循环体不会进入,因为<代码> LFSR= StistFixSturie。尝试通过代码来查看正在发生什么。它是从C++代码转换而来的,它的语句基本上在“循环”行上。
Do While lfsr <> start_state
...
Loop
do {
...
} while (lfsr != start_state);
Do
...
Loop While lfsr <> start_state