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));
};
python代码实现
from random import randint
number = input('请输入平安经词数:')
with open('平安经.txt', 'w', encoding='utf-8') as f:
f.writelines() xccxvb 发表于 2020-7-30 12:39
python代码实现
from random import randint
number = input('请输入平安经词 ...
感谢大大让我圆了一键出书的梦想 可以,楼主可以出版了 吉林再次出名了居然是因为这个... 小心对方说您侵权呢,您这个与别人的重复率 也太高 表示很赞{:301_998:} 这个绝对是要出版的 字符串后面多少位,侵权了哈。 最近平安经很出名啊 写的挺详细,但注意版权啊!{:1_925:} 甚至有点想笑