回复:一个随机排列的程序,大家帮看一下还能优化吗?(能否用FOR简化)

已锁定

为修修为

西门子1847工业学习平台

  • 帖子

    1168
  • 精华

    8
  • 被关注

    30

论坛等级:奇侠

注册时间:2021-12-02

钻石 钻石 如何晋级?

发布于 2023-12-04 09:35:34

8楼

展开查看
以下是引用xinchen在2023-12-04 09:25:30的发言 >6楼

在不考虑重复值、范围(上下限)确定,且范围很小时,是否重复和顺序输出的最快方法就是用数组,确实不用再冒泡之类的排序;


从程序上看, sMax/sMin 不需要受 iMax/iMin 影响吧(?,初始化就能定下了),此时 偏移量 x-sMin 就是定的,在 array[] 或者 SW[] 中的位置也是固定的;只需要生成随机数后,看看对应的位置是否有值即可;

另外,此时 array 中未生成过的位置值是0,如果想要去掉0,再循环一次 array,仅提取不为0的放在另一数组即可;


如果以上满足需求,那几行程序就行了,不需要后面的 各种 goto 和 #RandomVal <> #Array[1] && #RandomVal <> #Array[2] ... 




21-40段是限幅及防止输入错误宕机,防止错误输入导致MIN值大于MAX值。这是一个1-16间整数随机排列 ,可以是1-2之间,也可以是2-3,以此类推1-16间。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15228条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。