windows 下的随机数太扯淡了

dukang2004 2013-09-24 02:35:01
stdlib.h
/* Maximum value that can be returned by the rand function. */

#define RAND_MAX 0x7fff //才3万多点


看看linux的

/* The largest number rand will return (same as INT_MAX). */
#define RAND_MAX 2147483647

这才靠谱啊
...全文
1100 36 打赏 收藏 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjb_yd 2013-09-28
  • 打赏
  • 举报
回复
引用 13 楼 fetag 的回复:
[quote=引用 7 楼 zhao4zhong1 的回复:] [/code]
赵教主就别现眼了,先去科普下随机数的周期都和哪些因素有关吧~~ 这也不是衡量JJ呢,拼得越长越好~~[/quote]
TheMadMan 2013-09-26
  • 打赏
  • 举报
回复
围观+学习ing
majia2011 2013-09-26
  • 打赏
  • 举报
回复
这是参加那个会了吧,呵呵呵
dianyancao 2013-09-26
  • 打赏
  • 举报
回复
引用 34 楼 c090869 的回复:
[quote=引用 31 楼 dianyancao 的回复:] [quote=引用 29 楼 c090869 的回复:] [quote=引用 25 楼 dianyancao 的回复:] 假设随机数发生器产生0,1的概率相等,各为50% 怎么用最少的迭代次数生成概率各为1/3的0,1,2三个数?
很简单地, 00为0, 01为 1, 10为2, 11舍弃掉不用。[/quote] 这样每次两个位产生11的概率为1/4 若n次均出现重复的两个位为11,那么遇到这种情况的概率为(1/4)^n 能不能降低这个复杂度呢?[/quote] 还没有想到。[/quote] 谢谢啦
dianyancao 2013-09-26
  • 打赏
  • 举报
回复
引用 29 楼 c090869 的回复:
[quote=引用 25 楼 dianyancao 的回复:] 假设随机数发生器产生0,1的概率相等,各为50% 怎么用最少的迭代次数生成概率各为1/3的0,1,2三个数?
很简单地, 00为0, 01为 1, 10为2, 11舍弃掉不用。[/quote] 这样每次两个位产生11的概率为1/4 若n次均出现重复的两个位为11,那么遇到这种情况的概率为(1/4)^n 能不能降低这个复杂度呢?
FancyMouse 2013-09-26
  • 打赏
  • 举报
回复
引用 12 楼 fetag 的回复:
[quote=引用 10 楼 caozhy 的回复:] [quote=引用 2 楼 FancyMouse 的回复:] 有啥区别。你要知道理论研究里的随机数生成器只生成0和1,照样能撑起整个随机算法的世界。
没错,能生成0、1随机的理想随机数发生器可以构造任何随机数。[/quote] 你们是在混淆概念! theoretical of computer science 里面的随机数生成器只产生0,1是因为基于图灵机的模型,每次只产生一个比特位,此时还需要考虑output的bit length,组合在一起才能当PRNG。你们拿alpha当string,这是很不厚道的偷换概念! 楼主抱怨的没错!针对现在应用最广泛的随机数生成算法,无论是(truncated) linear congruential generator,还是polynomial pseudo-random number generator,如果模数太小,确实会导致周期变小。关于这个问题在<The Art of Computer Programming>第二卷3.2.1.1节有详细的介绍。 [/quote] lz可没抱怨周期太短。他只是纯粹在抱怨范围,看18L。 他要真抱怨周期的话,我当然是另一种回复。
c090869 2013-09-26
  • 打赏
  • 举报
回复
引用 31 楼 dianyancao 的回复:
[quote=引用 29 楼 c090869 的回复:] [quote=引用 25 楼 dianyancao 的回复:] 假设随机数发生器产生0,1的概率相等,各为50% 怎么用最少的迭代次数生成概率各为1/3的0,1,2三个数?
很简单地, 00为0, 01为 1, 10为2, 11舍弃掉不用。[/quote] 这样每次两个位产生11的概率为1/4 若n次均出现重复的两个位为11,那么遇到这种情况的概率为(1/4)^n 能不能降低这个复杂度呢?[/quote] 还没有想到。
c090869 2013-09-26
  • 打赏
  • 举报
回复
引用 25 楼 dianyancao 的回复:
假设随机数发生器产生0,1的概率相等,各为50% 怎么用最少的迭代次数生成概率各为1/3的0,1,2三个数?
很简单地, 00为0, 01为 1, 10为2, 11舍弃掉不用。
dukang2004 2013-09-25
  • 打赏
  • 举报
回复
引用 20 楼 rocktyt2 的回复:
[quote=引用 19 楼 u010188028 的回复:] [quote=引用 14 楼 nice_cxf 的回复:] 都是伪随机数,能差到那去呢,也就是linux生成一个随机数,windows要生成2个拼接一下而已,效率差点,就这么点区别。。。
very正解,就是这么解决。主要是要没注意到这个问题就傻帽了,数组有10万数据,要没注意这个问题3万开外的数据全取不到 (rand()*RAND_MAX+rand())% nsize[/quote]这个错了吧,你或许想写(RAND_MAX+1)?[/quote] 还是你更严谨
rocktyt 2013-09-25
  • 打赏
  • 举报
回复
引用 19 楼 u010188028 的回复:
[quote=引用 14 楼 nice_cxf 的回复:] 都是伪随机数,能差到那去呢,也就是linux生成一个随机数,windows要生成2个拼接一下而已,效率差点,就这么点区别。。。
very正解,就是这么解决。主要是要没注意到这个问题就傻帽了,数组有10万数据,要没注意这个问题3万开外的数据全取不到 (rand()*RAND_MAX+rand())% nsize[/quote]这个错了吧,你或许想写(RAND_MAX+1)?
dukang2004 2013-09-25
  • 打赏
  • 举报
回复
引用 14 楼 nice_cxf 的回复:
都是伪随机数,能差到那去呢,也就是linux生成一个随机数,windows要生成2个拼接一下而已,效率差点,就这么点区别。。。
very正解,就是这么解决。主要是要没注意到这个问题就傻帽了,数组有10万数据,要没注意这个问题3万开外的数据全取不到 (rand()*RAND_MAX+rand())% nsize
dukang2004 2013-09-25
  • 打赏
  • 举报
回复
引用 13 楼 fetag 的回复:
[quote=引用 7 楼 zhao4zhong1 的回复:] [/code]
赵教主就别现眼了,先去科普下随机数的周期都和哪些因素有关吧~~ 这也不是衡量JJ呢,拼得越长越好~~[/quote] 你这连题目都没看懂,假如数组有10万数据,要没注意这个问题3万开外的数据全取不到
dukang2004 2013-09-25
  • 打赏
  • 举报
回复
引用 6 楼 w13970061035 的回复:
你用得着随机这么大的数吗?
3万以外的随机数经常用啊,要没注意到这个真是要命,3万之外的数据全取不到 之前经常在linux下编程,同样的代码在linux下就没有问题
赵4老师 2013-09-25
  • 打赏
  • 举报
回复
CoCreateGuid Creates a GUID, a unique 128-bit integer used for CLSIDs and interface identifiers. HRESULT CoCreateGuid( GUID *pguid //Pointer to the GUID on return ); Parameter pguid [out] Pointer to the requested GUID on return. Return Value S_OK The GUID was successfully created. Win32 errors are returned byUuidCreate but wrapped as an HRESULT. Remarks The CoCreateGuid function calls the RPC function UuidCreate, which creates a GUID, a globally unique 128-bit integer. Use the CoCreateGuid function when you need an absolutely unique number that you will use as a persistent identifier in a distributed environment.To a very high degree of certainty, this function returns a unique value – no other invocation, on the same or any other system (networked or not), should return the same value. QuickInfo Windows NT: Use version 3.1 or later. Windows: Use Windows 95 or later. Windows CE: Unsupported. Header: Declared in objbase.h. Import Library: Included as a resource in ole32.dll. See Also UuidCreate
chen870201 2013-09-25
  • 打赏
  • 举报
回复
引用 2 楼 FancyMouse 的回复:
有啥区别。你要知道理论研究里的随机数生成器只生成0和1,照样能撑起整个随机算法的世界。
dianyancao 2013-09-25
  • 打赏
  • 举报
回复
引用 27 楼 rocktyt2 的回复:
[quote=引用 25 楼 dianyancao 的回复:] 假设随机数发生器产生0,1的概率相等,各为50% 怎么用最少的迭代次数生成概率各为1/3的0,1,2三个数?
最少我不知道,最方便的应该是生成0~3的随机数,随到3就重新随机,否则就输出了吧? 等更好的答案[/quote] 嗯,谢谢啦
nice_cxf 2013-09-25
  • 打赏
  • 举报
回复
都是伪随机数,能差到那去呢,也就是linux生成一个随机数,windows要生成2个拼接一下而已,效率差点,就这么点区别。。。
rocktyt 2013-09-25
  • 打赏
  • 举报
回复
引用 25 楼 dianyancao 的回复:
假设随机数发生器产生0,1的概率相等,各为50% 怎么用最少的迭代次数生成概率各为1/3的0,1,2三个数?
最少我不知道,最方便的应该是生成0~3的随机数,随到3就重新随机,否则就输出了吧? 等更好的答案
bwangel 2013-09-25
  • 打赏
  • 举报
回复
即使只能生成0,1两个数的随机数算法,经过适当的封装,也能生成任意宽度的随机数。 当然可能麻烦点,但你反过来想一想,如果你只要生成一个16位的随机数,却给你一个64位的,你不也要进行额外的处理么?
独孤过儿 2013-09-25
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
[/code]
赵教主就别现眼了,先去科普下随机数的周期都和哪些因素有关吧~~ 这也不是衡量JJ呢,拼得越长越好~~
加载更多回复(16)
内容概要:本文针对质子交换膜燃料电池(PEMFC)在动态压力工况下的最大功率点跟踪(MPPT)问题,提出了一种压力工况协同调控下的自适应高阶滑模控制策略,并基于Simulink平台完成了系统建模与仿真实现。该策略融合高阶滑模控制的强鲁棒性与自适应机制的参数在线优化能力,有效克服了PEMFC系统固有的非线性、外部扰动及工况时变性等挑战,实现了对最大功率点的快速、精确与稳定跟踪。研究内容涵盖控制策略的理论设计、李雅普诺夫稳定性分析、自适应律构建以及在多种动态工况下的仿真实验验证,结果表明该方法相较于传统控制策略具有更快的动态响应速度、更小的稳态振荡以及更强的抗干扰能力,显著提升了PEMFC系统的能量转换效率与运行稳定性。; 适合人群:具备一定控制理论基础和Simulink仿真经验,从事新能源发电系统、燃料电池控制、电力电子变换或先进控制算法研究的研发人员及高校研究生。; 使用场景及目标:①应用于燃料电池发电系统的高性能最大功率点跟踪控制设计;②为解决强非线性、多扰动耦合的能源系统提供先进的自适应鲁棒控制方案;③通过Simulink仿真验证高阶滑模与自适应控制算法的有效性,服务于科研项目攻关或工程原型开发。; 阅读建议:建议读者结合Simulink模型同步学习,重点关注控制律设计原理、自适应机制实现方式及仿真结果对比分析部分,并可通过与传统滑模控制进行对比,深入理解该策略在鲁棒性与动态性能上的优越性。
下拉可见数据集可视化效果示意。 【数据集概况】 · 检测类别(中文):[滴落物(Drop)] · 训练集:2021 张 · 验证集:128 张 · 测试集:42 张 · 总计:2191 张 该数据集聚焦于工业生产环境中地面或设备表面出现的各类滴落物检测,通过多角度、多光照条件下的图像采集,全面覆盖了不同形态、颜色和材质的滴落物样本。数据集真实还原了车间地面、金属板、木质结构等复杂背景下的实际场景,为自动化巡检系统提供了高价值的视觉依据,有助于实现对潜在污染源或泄漏点的早期识别与预警。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 71 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8949** mAP50-95 | 0.5139 Precision | 0.8991 Recall | 0.8527 train/box_loss | 0.8544 train/cls_loss | 0.4842 val/box_loss | 1.5612 val/cls_loss | 0.6862 【训练过程分析】 71 轮训练后 mAP50 为 0.8949,模型基本收敛但还有提升余地。Loss 曲线下降正常,后期趋于平缓。mAP50-95 为 0.5139,和 mAP50 差距 0.38,定位精度是主要短板。 【模型性能评估】 Precision 0.8991、Recall 0.8527,精度高于召回,存在一定漏检。 【预测效果展示】 验证集预测效果较好,检测框基本准确覆盖滴落物,置信度整体偏高。 【改进建议】 1. 增强难例挖掘:在大规模数据中筛选误检...
【2026年华为杯D题】山区洪涝灾害下无人机运输与通信协同优化(思路、代码、论文,持续更新)内容概要:本文围绕山区洪涝灾害背景下无人机在运输与通信任务中的协同优化问题展开研究,旨在通过数学建模与算法设计解决复杂地理环境下的应急响应难题。文中提出了综合考虑无人机飞行路径规划、物资投送效率、通信中继覆盖能力及多机协同控制的优化模型,并结合智能优化算法(如灰狼优化算法、鲸鱼算法等)进行求解,确保在灾情紧急、基础设施受损的情况下实现高效、可靠的救援支持。研究涵盖了从任务建模、约束条件设定到多目标优化框架构建的全过程,强调了算法在实际场景中的鲁棒性与适应性。; 适合人群:具备一定编程基础和运筹优化知识,从事应急管理、无人机应用或智能算法研究的研发人员及高校研究生。; 使用场景及目标:①应对山区洪涝等自然灾害时的无人机应急物流与通信保障;②提升多无人机系统在复杂环境下的协同作业能力,优化路径规划与资源分配策略;③为相关科研项目提供可复现的算法模型与仿真代码参考。; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注多目标优化模型的构建逻辑与智能算法的实现细节,同时可参照其他类似无人机路径规划案例加深理解,以实现理论与应用的有效结合。

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧