| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1911 人关注过本帖
标题:求数字乱序排列的编程思路
只看楼主 加入收藏
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
结帖率:89.13%
收藏
已结贴  问题点数:20 回复次数:3 
求数字乱序排列的编程思路
求数字乱序排列的编程思路

已知条件:
dim a as string
a="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21"

如何将这21个数字随机取出(取出来还是21个)? 不要代码,求思路。

[此贴子已经被作者于2020-11-24 21:04编辑过]

搜索更多相关主题的帖子: 排列 编程 思路 数字 取出 编程 思路 取出 排列 数字 
2020-11-24 21:02
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:76
帖 子:279
专家分:1367
注 册:2006-6-25
收藏
得分:10 
把a里的数据转换为数组。然后用随机数发生器产生个数,这个数就作为数组的下标,得到这个数,然后在数组里删除这个数,再重复,直到取完。
2020-11-25 08:11
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
以下是引用cwa9958在2020-11-25 08:11:52的发言:

把a里的数据转换为数组。然后用随机数发生器产生个数,这个数就作为数组的下标,得到这个数,然后在数组里删除这个数,再重复,直到取完。



你后面的方法不好。

我的方法:
先字符串转数组,然后数组用洗牌算法随机洗牌,我已写好代码。
我用VBS写的,代码如下:

程序代码:
Sub Shuffle(ByRef a)
    Dim t, j, n
    n = UBound(a)
    Randomize
    For i = n To 1 Step - 1
        j = Int(Rnd * (i + 1))
        t = a(j)
        a(j) = a(i)
        a(i) = t
    Next
End Sub

Dim Array(20) '数组0到20,共21个数字
Dim str
str = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21"  '要随机的数字这样赋值
S = Split(str,",")  '以逗号作为分割

For i = 0 To UBound(S)
    Array(i) = S(i)
Next
a = Array(20)   '数组的个数。0到20,共21个

WScript.Echo Join(Array)  '洗牌前
Shuffle Array
WScript.Echo Join(Array)  '洗牌后
word = Join(Array)
T=split(word," ")  '以空格作为分隔符
For j = 0 To ubound(T)
MsgBox T(j)
Next


[此贴子已经被作者于2020-12-14 09:53编辑过]

收到的鲜花
  • teshubancai2021-01-19 09:48 送鲜花  1朵   附言:厉害了我的哥

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2020-11-25 08:14
teshubancai
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2017-5-28
收藏
得分:10 
回复 3楼 yuma
给勤劳的您点个赞!准备学习一下!
2020-11-25 15:34
快速回复:求数字乱序排列的编程思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020825 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved