▲▲▲高分相送:如何在某一范围内的得到N个随即数,而且要保证这些随即数决无相同。

bluebill 2002-10-11 12:54:01
需要得到在某一范围内的随机数,这些随机数无论是同时产生还是分步产生,都不会产生完全相同的随机数!
...全文
63 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
boywang 2002-10-11
  • 打赏
  • 举报
回复
你说的范围有多大?
csdnHelp 2002-10-11
  • 打赏
  • 举报
回复
其实!你用rnd函数很爽的完成,你自己可以编,这样很灵活,别人的帮助总是有限的,如果你对rnd不了解请看MSDN!!!
另外,昨天好象有类似的,你查一下,应该没问题!!!
sindyzhou 2002-10-11
  • 打赏
  • 举报
回复
private Sub GetRand(Count As Long, LowLimit As Long, UpLimit As Long)
' Count '用於記數
' lowlimit '下限
' uplimit '上限
Dim i As Integer,i As Integer
Dim TempGet() As Integer '你所要的結果

ReDim TempGet(Count) As Integer

For i = 0 To Count - 1 '共需要這么多個數
Randomize '复位隨机數种子
TempGet(i) = (UpLimit - LowLimit - i) * Rnd() + LowLimit
Check:
For j = 0 To i - 1 '對每一個生成的隨机數與以前生成的數相比較
If TempGet(i) = TempGet(j) And i <> j Then
'如果有重復就自加一
TempGet(i) = TempGet(i) + 1
GoTo Check '并重新檢查
End If
Next j
Debug.Print TempGet(i)
Next i
End Sub

可以這樣測試:
重復調用getrand(4,1,4),每次的結果一定是1,2,3,4,但順序是隨机的
purple.taro 2002-10-11
  • 打赏
  • 举报
回复
楼上的说的对,现在我还没有其它办法例如,
要产生1到10之间的随机数的话,先声明一个有6个元素的数组
Dim a(10) As Integer, i As Integer, j As Integer
Dim tru As Boolean
Dim ran As Integer
i = 1: tru = False
Do While (i <= 10)
ran = Int(10 * Rnd + 1)
For j = 1 To i - 1
If ran = a(j) Then tru = True
Next j
If tru = False Then
a(i) = ran
i = i + 1
End If
tru = False
Loop
ztchen 2002-10-11
  • 打赏
  • 举报
回复
再具体些,这样吧:
dim ix as integer,iy as integer,iTmp as integer
dim aryTemp(10) as integer
randomize
for ix=0 to 9
'获取随机数
iTmp=int(255*rnd+1)
'循环原先的数组检查重复性
for iy=0 to ix
if iTmp=aryTemp(iy) then
'如果重复则退回前一步并退出检查循环
ix=ix-1
exit for
else
'如果不重复
if iy=ix then
'将合法随机数添加到数组中的最末位
aryTemp(ix)=iTmp
endif
endif
next
next

数组里的10个数就是1至255范围内的随机数,并都做了重复性的检查
sindyzhou 2002-10-11
  • 打赏
  • 举报
回复
Dim Count as integer,lowlimit as integer,uplimit as integer
Dim i As Integer,i As Integer
Dim TempGet() As Integer

ReDim TempGet(Count) As Integer

For i = 0 To Count - 1
TempGet(i) = (UpLimit - LowLimit - i) * Rnd() + LowLimit
Check:
For j = 0 To i - 1
If TempGet(i) = TempGet(j) And i <> j Then
TempGet(i) = TempGet(i) + 1
GoTo Check
End If
Next j
Next i

測試通過
bluebill 2002-10-11
  • 打赏
  • 举报
回复
还要别的办法吗?
sindyzhou 2002-10-11
  • 打赏
  • 举报
回复
產生了相同的數就再來一次

如果是离散數字的話應該可以用代碼控制
ztchen 2002-10-11
  • 打赏
  • 举报
回复
应该是这样吧:
dim i,j
randomize
i=int(255*rnd+1)
j=int(255*rnd+1)

这样得到的是1到255范围之内的随机数,不可能重复
该工具是一款采用Python语言构建的应用程序,专门用于处理CSV格式的据文件,并将其转化为系统化的据结构。这一功能在据科学和工程领域中尤为重要,能够协助用户将原始信息整理为便于后续统计与分析的形态。 在功能设计上,该软件允许使用者导入自行定义的DBC解析配置文件。DBC文件常用于描述控制器局域网(CAN)总线中的通信协议与信号定义,因此这一特性显著提升了工具在汽车电子及相关工业场景中的适应能力,使用户能依据具体项目要求灵活设定解析规则。 为降低使用门槛,工具内部已预置标准DBC解析模板。即便用户未准备自定义配置文件,亦可借助内置模板完成基础的据解析任务,从而快速开展据处理工作。 该应用主要面向汽车电子行业,针对CAN总线通信记录进行解析与转换。CAN总线作为现代车辆内部各控制单元间通信的核心网络,对其传输据的分析在车辆状态监测、故障排查及性能优化等方面具有重要工程价值。 从部署方式来看,工具推荐在独立的Python虚拟环境中运行。这种做法能有效隔离项目依赖,避免不同软件包之间的版本冲突,同时保持主机系统环境的整洁,符合Python开发的最佳实践。 随软件一同提供的还有配套资源文件及技术说明文档,为用户理解工具原理、掌握操作方法提供了系统的参考资料,有助于缩短学习周期并提升使用效率。 综合以上特点,该工具适合汽车电子工程师、车载据分析师以及相关科研工作者使用,尤其服务于需对CAN总线原始记录进行结构化处理并开展深入挖掘的专业场景。 选用Python作为开发语言,一方面源于其在据处理领域的丰富生态与成熟库支持,另一方面也考虑到该语言语法清晰、易于维护的特点,有利于降低开发与使用门槛。 从项目名称推测,其核心可能涉及CAN据帧的解析与重构。用户可通过该项目进一步扩展或修改解析逻辑,以适应更复杂的车载通信协议或定制化的据分析需求。 总体而言,这款基于Python的据转换工具在满足专业领域特定需求的同时,兼顾了易用性与可扩展性,使不具备深入编程背景的技术人员也能高效完成相关据处理任务。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
内容概要:本文系统阐述了新能源汽车在电动化、智能化、网联化趋势下面临的综合性安全挑战,重点围绕能源安全与据隐私安全两大核心领域展开分析。在能源安全部分,深入探讨了电池包的安全风险来源(化学反应、温度、机械损伤),并详细介绍了防水、防火、机械强度、温控管理及电池管理系统(BMS)等关键技术保障措施,同时展望了新材料、智能BMS、仿真模拟与自愈材料等前沿技术应用;充电设施安全则从电气、物理、信息、操作和环境五个维度提出全方位防护策略,并强调合规标准与应急响应机制的重要性。在据与隐私安全部分,文章梳理了据全生命周期的安全管理要求,涵盖据分类分级、采集存储加密、传输处理安全、用户隐私保护权利、第三方服务监管等内容,强调企业需建立透明隐私政策、落实用户授权机制,并配合政府监管平台实现安全监测与事件响应。全文最后呼吁产业链协同推进安全体系建设,保障智能出行可持续发展。; 适合人群:从事汽车电子、智能网联汽车研发的技术人员,以及关注新能源汽车安全的管理人员、政策制定者和高校研究人员。; 使用场景及目标:①深入了解新能源汽车能源系统(电池与充电设施)的安全设计原理与技术路径;②掌握车联网环境下据安全与用户隐私保护的合规要求与实施框架;③为企业构建整车安全体系提供理论支持与实践参考。; 阅读建议:本文兼具技术深度与系统思维,建议结合上篇内容通读,重点关注各安全模块的技术实现与管理机制联动,适用于产品设计、安全评估与合规审查等实际工作场景。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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