浮华情未言 发表于 2020-7-30 10:47

NodeJs 写个<平安经>暴力随机生成程序[更新常用汉字平安经]

本帖最后由 浮华情未言 于 2020-7-30 13:29 编辑

GAYHUB地址 https://github.com/crytion/pian_an_jing

昨天学正则时发现判断是不是中文字符就判断字符的unicode范围在不在u4E00到u9FA5之间,
那我反着来不就是生成全部中文文字了吗.
顺便写了平安经.不知道什么能发表出去


效果预览就看图吧, 后面的多字词语平安基本每次生成都是完全不同的平安经.
就算是查重都好通过
// u4E00 u9FA5
// 19968 - 40869

// 思路: 遍历整个中文字符串码的10进制范围
// 转为16进制字符串,再转成中文


var fs = require('fs');

var str = "";
//所有中文的合集
var arrChinese = [];

// 中文的uni码范围
for(var i = 19968; i <= 40869;i++)
{
      // 10进制转16进制字符串
      var sss = i.toString(16).toUpperCase();
      
      arrChinese.push(toChinese("\\u" + sss));
      
// 所有中文汉字平安
      str += (toChinese("\\u" + sss) + "平安, ");
      
      if(i%20 == 0)
      {
                str += "\n";
      }
}

// 两字词语, 随便写写, 反正随机生成的
str += "\n";
for(let i = 0; i < 30000; i++)
{
      var one = GetRandNum(0, arrChinese.length - 1);
      var two = GetRandNum(0, arrChinese.length - 1);
      str += (arrChinese+arrChinese + "平安, ");
      
      if(i%20 == 0)
      {
                str += "\n";
      }
}

// 三字词语, 随便写写, 反正随机生成的
str += "\n";
for(let i = 0; i < 40000; i++)
{
      var one = GetRandNum(0, arrChinese.length - 1);
      var two = GetRandNum(0, arrChinese.length - 1);
      var three = GetRandNum(0, arrChinese.length - 1);
      str += (arrChinese+arrChinese+arrChinese + "平安, ");
      
      if(i%20 == 0)
      {
                str += "\n";
      }
}



fs.writeFile('./AI_平安经.txt', str, function(err) {
    if (err) {
      throw err;
    }

    console.log('Saved.');
});


// 16进制码转成中文
function toChinese(str)
{
      str = eval("'" + str + "'");
      return str;
};

// 整数的随机数
function GetRandNum( nMin, nMax )
{
    if (nMin >= nMax) return nMin;
    return nMin + Math.floor(Math.random() * (nMax - nMin + 1));
};




--------------------------------------------更新分割线--------------------------------------------------

添加了3500常用汉字的生成的平安经


var fs = require('fs');
var str = "";

fs.readFile('./normal.txt', 'utf-8', function(err, data) {
    // 读取文件失败/错误
    if (err) {
      throw err;
    }
        var arrChinese = data.split(" ");
       
        WriteTxtFile(arrChinese);
       
       
});


function WriteTxtFile(arrChinese)
{
        for(let i = 0; i < 30000; i++)
        {
                var one = GetRandNum(0, arrChinese.length - 1);
                var two = GetRandNum(0, arrChinese.length - 1);
                str += (arrChinese+arrChinese + "平安, ");
       
                if(i%20 == 0)
                {
                        str += "\n";
                }
        }
       
       
        fs.writeFile('./常用词平安经.txt', str, function(err) {
                if (err) {
                        throw err;
                }
       
                console.log('Saved.');
        });

}


// 整数的随机数
function GetRandNum( nMin, nMax )
{
    if (nMin >= nMax) return nMin;
    return nMin + Math.floor(Math.random() * (nMax - nMin + 1));
};

xccxvb 发表于 2020-7-30 12:39

python代码实现
from random import randint
number = input('请输入平安经词数:')
with open('平安经.txt', 'w', encoding='utf-8') as f:
    f.writelines()

爱思考的草 发表于 2020-7-30 14:19

xccxvb 发表于 2020-7-30 12:39
python代码实现
from random import randint
number = input('请输入平安经词 ...

感谢大大让我圆了一键出书的梦想

时光书窝 发表于 2020-7-30 10:48

可以,楼主可以出版了

tonyk 发表于 2020-7-30 10:51

吉林再次出名了居然是因为这个...

xuexixiaobai 发表于 2020-7-30 10:54

小心对方说您侵权呢,您这个与别人的重复率 也太高

hj170520 发表于 2020-7-30 10:55

表示很赞{:301_998:}

woody0619 发表于 2020-7-30 10:56

这个绝对是要出版的

灵影 发表于 2020-7-30 10:56

字符串后面多少位,侵权了哈。

lfm333 发表于 2020-7-30 10:56

最近平安经很出名啊

0451 发表于 2020-7-30 10:57

写的挺详细,但注意版权啊!{:1_925:}

8gram 发表于 2020-7-30 11:01

甚至有点想笑
页: [1] 2 3
查看完整版本: NodeJs 写个<平安经>暴力随机生成程序[更新常用汉字平安经]