0.0.1 • Published 8 years ago

fake_random v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
8 years ago

伪随机数生成

测试伪随机打乱机制

根据集中数字转置方式实现排列顺序的伪打乱

实现100,000,000内的伪随机打乱

相关算法:

  • 1: 数字直接替换(1-1对应的数字交换), 可逆变换
  • 2: 数字位置替换(1-1位置交换), 可逆变换
  • 3: 位移运算,加一个固定偏移量,越界后自动这回, 可逆变换
  • 4: 镜像翻转,用总数减去当前数值, 可逆变换
  • 5: 倾斜度变换,越界后折回,增加越界倍数作为修正量, 可逆变换(选取大于2的质数作为倍数)
  • 6: 逆向排列, 可逆变换
  • 7: 局部简化版RSA, 可逆变换,选取m和n,打乱0~m*n之间的顺序(算法待实现)
  • A: 以上所有算法的随机组合

示例

var fake_random = require('./index.js');


function change (x) {
    var c = new fake_random(x);
    return c.changeNumber()
    .changeMod(5244512)
    .changeAngle(3)
    .changeIndex('64215073')
    .changeABS()
    .changeAngle(31)
    .changeMod(3244512)
    .changeNumber({"0":'1','1':'8','8':'9','9':'4','4':'6','3':'5','6':'7','7':'2','2':'3','5':'0'})
    .changeNumber()
    .changeIndex('02134567')
    .changeMod(67100987)
    .changeAngle(119971)
    .changeABS()
    .changeDirection()
    .changeNumber({"0":'1','1':'2','3':'5','6':'7','7':'6','2':'3','5':'9','9':'4','4':'8','8':'0'})
    .changeAngle(137)
    .changeNumber()
    .number;
}
function runTestCase(){
    for(var i=1;i<1000;i++){
        console.log(change(i));
    }   
}

runTestCase();