npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

fake_random

v0.0.1

Published

Mix number in some translation and got a fake random one

Downloads

4

Readme

伪随机数生成

测试伪随机打乱机制

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

实现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();