设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1702|回复: 4
打印 上一主题 下一主题

[已经解决] 求一个数组的使用方法

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
跳转到指定楼层
1
发表于 2015-11-20 22:04:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 白鬼 于 2015-11-20 22:06 编辑

想做一个效果,某数组A = []
A数组内容数量不确定
想从A中随机抽取一个数据进行处理,
抽取后,该数据x不再存在于A中
但是A中可以有完全相同的数据
假如说
A = [x, x, y, z, m, m, n]
第一次随机抽取,抓取出一个m然后
A = [x, x, y, z, m, n]

不知道怎么做到,求帮忙@RyanBern @恐惧剑刃 @芯☆淡茹水 @︶ㄣ牛排ぶ  
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
头像被屏蔽

Lv1.梦旅人 (禁止访问)

梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
帖子
3600
5
发表于 2015-11-23 21:05:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

4
发表于 2015-11-21 00:01:20 | 只看该作者
本帖最后由 VIPArcher 于 2015-11-21 00:04 编辑

反正都随机了打乱也无所谓的吧?
  1. a = [1,2,3,4,5,6,7,8]
  2. a.shuffle!.pop
复制代码
也许XP的ruby版本没有shuffle!可以用,如果没有的话就无视我吧

点评

真要shuffle直接手肛一个呗,洗牌算法又不难  发表于 2015-11-21 09:25
↓强行把O(n)变成O(nlogn)  发表于 2015-11-21 09:14
没shuffle就用sort_by rand呗  发表于 2015-11-21 09:09
都用Ruby了还谈什么效率!(死)  发表于 2015-11-21 09:03
但 shuffle! 方法从头到尾只需要调用一次。而且 delete_at 好歹也是 O(n) 不是 O(1)  发表于 2015-11-21 08:33

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21604
在线时间
9411 小时
注册时间
2012-6-19
帖子
7117

开拓者短篇九导演组冠军

3
发表于 2015-11-20 22:33:43 | 只看该作者
说起来……既然A数组内容数量不确定…………

直接 A.pop 不就好了………………

点评

或者 shift 。  发表于 2015-11-21 09:04
不带参数就是扣掉并返回数组最后一个一个元素。带参数就是扣掉后面几位并返回这几位的数组。  发表于 2015-11-20 23:57
不动pop是什么意思  发表于 2015-11-20 23:44
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2015-11-20 22:10:30 | 只看该作者
本帖最后由 RyanBern 于 2015-11-21 09:12 编辑

RUBY 代码复制
  1. a = [1,1,2,3,5,8]
  2. x = a.delete_at(rand(a.size))

点评

x = a.delete_at(n) 就好了。要让代码更清晰,可以 x = a.slice!(n)  发表于 2015-11-21 08:34
最近没什么时间,先记下了。多谢!  发表于 2015-11-20 23:45
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-12 02:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表