本帖最后由 浮华情未言 于 2020-7-30 13:29 编辑
GAYHUB地址 https://github.com/crytion/pian_an_jing
昨天学正则时发现判断是不是中文字符就判断字符的unicode范围在不在u4E00到u9FA5之间,
那我反着来不就是生成全部中文文字了吗.
顺便写了平安经.不知道什么能发表出去
效果预览就看图吧, 后面的多字词语平安基本每次生成都是完全不同的平安经.
就算是查重都好通过
[JavaScript] 纯文本查看 复制代码 // 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[one]+arrChinese[two] + "平安, ");
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[one]+arrChinese[two]+arrChinese[three] + "平安, ");
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常用汉字的生成的平安经
[JavaScript] 纯文本查看 复制代码
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[one]+arrChinese[two] + "平安, ");
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));
};
|