回复:客户提了个“少见”的要求:我的数组元素次序就要随机排列!

'Razor

西门子1847工业学习平台

  • 帖子

    3245
  • 精华

    42
  • 被关注

    224

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

发布于 2019-11-21 10:59:19

11楼

展开查看
以下是引用宝冬在2019-11-21 09:11:02的发言 >5楼

按照范围生成的随机数放在数组中存起来。比如:第一个生成的随机数放到数组中的第一个位置,后来生成的依次往后面放。在放之前,要确保新生成的随机数,不和已经生成的随机数有重复。需要遍历对比一下,如果有重复就重新生成。


或者,每次生成一个随机下标,就把源数组中对应的这个数,复制到目标数组中的已经复制的数据之后的位置。然后把源数组中这个数后面的数据都往前挪一格,覆盖掉这个数据,生成短一格的新数组。然后按照前述办法继续处理新的源数组。

再次感谢宝冬的点拨,客户的要求类似楼上所说的洗牌,纸牌数量已定,牌面大小已定,不准换牌,不准丟牌,进行洗牌操作。

楼主原有思路可行,不过需要重要的补充,就是以随机数生成器产生的随机数作为操作数组元素的下标,但是必须确保此下标值在范围内均匀出现,才能实现不丢牌(数据元素丢失),不换牌(数据元素值改变)。

少即是多
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15222条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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