查看: 1943|回复: 4

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

[复制链接]
梦石
0
星屑
1748
在线时间
485 小时
注册时间
2006-1-7
回帖
996
发表于 2015-11-20 22:04:11 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 白鬼 于 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 @恐惧剑刃 @芯☆淡茹水 @︶ㄣ牛排ぶ  
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-11-20 22:10:30 | 显示全部楼层
本帖最后由 RyanBern 于 2015-11-21 09:12 编辑

[pre lang="Ruby"]a = [1,1,2,3,5,8]
x = a.delete_at(rand(a.size))[/pre]

点评

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

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 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
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 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 认可答案

查看全部评分

回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
回帖
3243
发表于 2015-11-23 21:05:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部