C语言随机数优化
C语言随机数优化, 官方默认支持随机数最大概率32767, 封装后新的随机数支持几百兆的整数甚至尾数大于16位的浮点数, 每一个数都有机会出现, 解决了官方随机数最大概率不合理, 容易出现重复数甚至不出数的问题程序代码:
捌無 视程显露 制造低高肆(捌無 低肆, 捌無 高肆) { 返回(低肆 | 高肆 << 32); } 肆整 视程显露 得到随机肆整(肆整 最小, 肆整 最大) { 若(最小 == 最大) 返回 最大; 肆無 贰 = rand() + rand() + 1; 肆整 小 = 得到最小(最小, 最大); 返回(肆整)(制造低高贰(贰, 贰) % (得到最大(最小, 最大) - 小) + 小); } 捌整 视程显露 得到随机捌整(捌整 最小, 捌整 最大) { 若(最小 == 最大) 返回 最大; 肆無 贰 = rand() + rand() + 1, 肆 = 制造低高贰(贰, 贰); 捌整 小 = 得到最小(最小, 最大); 返回(捌整)(制造低高肆(肆, 肆) % (得到最大(最小, 最大) - 小) + 小); } 捌浮 视程显露 得到随机捌浮(捌浮 最小, 捌浮 最大) { 若(最小 == 最大) 返回 最大; 肆無 贰 = rand() + rand() + 1, 肆 = 制造低高贰(贰, 贰); 捌浮 小 = 得到最小(最小, 最大); 返回(捌浮)(制造低高肆(肆, 肆) % 最大捌浮) / 最大捌浮 * (得到最大(最小, 最大) - 小) + 小; } 空白 视程显露 设置随机种子(捌浮 秒) { 肆無 流逝 = (肆無)得到余数(秒 * 1000, 最大肆無); srand((肆無)得到随机肆整(~最大肆整, 最大肆整) % 得到最大(最大肆無 - 流逝, 流逝) + 得到最小(最大肆無 - 流逝, 流逝)); }