Project1

标题: 请教从1到100中随机抽取25个不重复的数,依次赋给公共变量1-25 [打印本页]

作者: taeckle    时间: 2019-10-11 08:04
标题: 请教从1到100中随机抽取25个不重复的数,依次赋给公共变量1-25
请教大神从1到100中随机抽取25个不重复的数,依次赋给公共变量1-25的脚本怎么写啊?
作者: 张咚咚    时间: 2019-10-11 09:20
本帖最后由 张咚咚 于 2019-10-11 19:22 编辑
  1. arr = *1..100
  2. 25.times do |i|
  3.   $game_variables[i+1] = arr.delete_at(rand(arr.length))
  4. end
复制代码

作者: ppspssss    时间: 2019-10-11 10:47

$a=[]   #定義$a為數組
for i in 1..100  #循環1~100次數,把1~100的值依循環次數給i值 , 比如第一次i是1,第二次i是3, 一直到100次i是100
$a.push(i)  #把i的數值加到達a數組中, 那100次循環后,$a就等于有 1~100的數值了, 比喻法:$a袋子里有1~100編号的球
end

for j in 1..25 #1~25變量, 比如你想26~50變量就填26..50
i = rand($a.size) #隨機从$a數組(袋子)抽取球數(size)的一个球
$game_variables[j] = $a #抽了之后變量就等第几个球之中的數值
$a -= [$a] #从$a數組中刪除抽中的元素,那袋子里就没有重复抽取的了
end

作者: 寒凌天    时间: 2019-10-11 12:14
本帖最后由 寒凌天 于 2019-10-11 12:15 编辑
  1. a = *1..100                   #声明1-100的数组
  2. a = a.shuffle                 #重点,数组重新随机排序

  3. for i in 1..25                #创建1-25的循环
  4. $game_variables[i] = a[i]     #把随机值装进变量
  5. end
复制代码



很简单的代码,哈哈,注释都给你写好了
作者: soulsaga    时间: 2019-10-11 14:45
本帖最后由 soulsaga 于 2019-10-11 15:22 编辑

感谢大神指教......
翻译一下2楼大神给的脚本
RUBY 代码复制
  1. arr = *1..100 #定义数组
  2. 25.times do |i|
  3.   $game_variables[i] = arr.delete_at(rand(arr.length)) #删除arr数组里随机一个元素並返回它..如果随机到50就会把数组里的50删除掉並返回50 如此类推 所以结果不会有重复..
  4. end

作者: miantouchi    时间: 2019-10-11 15:10
各显神通!!!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1