TC官方合作论坛

标题: 大家一起学TC(五:数组内容随机重新排列)[附代码精简过程] [打印本页]

作者: zxjkings    时间: 2015-5-6 03:12
标题: 大家一起学TC(五:数组内容随机重新排列)[附代码精简过程]
本帖最后由 zxjkings 于 2015-5-6 12:29 编辑

今天半夜群里朋友问A数组的内容放到B数组里,并且要打乱顺序重新排列怎么搞

想来很简单的应该,结果上手才发现悲剧了,用数组[下标]的形式产生各种错误.
如下:
  1. 变量 A=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16),B=array()
  2.     遍历(变量 i=0; i<16; i++)
  3.         变量 随机位置=随机数(0,数组大小(A))
  4.         B[i]=A[随机位置]
  5.         数组指定位置删除(A,随机位置)
  6.     结束
  7.     traceprint(B)
复制代码

想来才发现----------5.0的数组[]中取的是Key

这NM就蛋疼了,于是想到用数组获取元素来取,也是各种错误.

至于错误原因,以及尝试的次数,我就不蛋疼的复述过程了,反正是被5.0数组虐的不行.
  1. 变量 A=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16),B=array(),i=0,随机位置,值,key,ret
  2.     循环(真)
  3.         如果(数组大小(A)==0)
  4.             跳出
  5.         否则
  6.             随机位置=随机数(0,数组大小(A)-1)
  7.             数组获取元素(A,随机位置,值,key)
  8.             B[i]=值
  9.             数组指定位置删除(A,随机位置)
  10.             i++
  11.         结束
  12.     结束
  13.     traceprint(B)
复制代码
调试无误发给群里朋友,刚一发完就后悔了.

为啥后悔?

太坑人了,循环只是为了之前蛋疼的思路,写着写着留下的渣渣,本来完全没必要,只要遍历就行了.于是又改了一份:
  1. 变量 A=array("a","b","c","d","e","f","g"),B=array(),随机位置,值,key,ret,次数=数组大小(A)
  2.     遍历(变量 i = 0; i <次数;  i++)
  3.         随机位置=随机数(0,数组大小(A)-1)
  4.         数组获取元素(A,随机位置,值,key)
  5.         B[i]=值
  6.         数组指定位置删除(A,随机位置)
  7.     结束
  8.     traceprint(B)
复制代码
是的,只有7行(不算调试输出那行).但群里各种半夜不睡的屌丝朋友们鸡冻了!说7行太长.

接下来这7行代码遭受各种惨无人道的**.

我是懵B了,这7行代码硬是被减到了......

直接回帖看的答案的都是1厘米的小唧唧,为了提高也好,学习也罢,解闷也无所谓..
请把你精简之后的代码来代替回复,看你能不能更"短"...
(注:封装函数无效)




作者: qw362534335    时间: 2015-5-6 06:13
看看怎么回事
作者: sam7894604    时间: 2015-5-6 07:06
本帖最后由 sam7894604 于 2015-5-6 07:47 编辑

我也来看看~


------------------------------研究与分享的分隔线------------------------------


首先...你的代码有BUG,会有重复的值,下面是修复过的。

  1.     变量 A = 数组("a","b","c","d","e","f","g"),B = 数组(),key,次数 = 数组大小(A)
  2.     遍历(变量 i = 0; i <次数; i++)
  3.         数组获取元素(A,key = 随机数(0,数组大小(A)-1),B[i])
  4.         数组指定位置删除(A,key)
  5.     结束
复制代码



再来呢,分享我精简过的四行代码版,还去除一个多余 次数 变量,完美无BUG。

  1.     变量 A = 数组("a","b","c","d","e","f","g"),B = 数组(),key
  2.     遍历(变量 i = 数组大小(A) - 1 ; 数组获取元素(A,key = 随机数(0,i),B[i]) && i > 0; i--)
  3.         数组指定位置删除(A,key)
  4.     结束
复制代码


还有终极版,三行代码版,完美无BUG。

  1.     变量 A = 数组("a","b","c","d","e","f","g"),B = 数组(),key
  2.     遍历(变量 i = 数组大小(A) - 1 ; 数组获取元素(A,key = 随机数(0,i),B[i]) && 数组指定位置删除(A,key) && i > 0; i--)
  3.     结束
复制代码


我的精简版都是倒序写入,但是实际使用上不影响,所以你要求的功能可以说是完整实现了。


作者: q741230412    时间: 2015-5-6 08:03

作者: wjyzl0569    时间: 2015-5-6 08:27
936571194
作者: lidongxu    时间: 2015-5-6 08:31

作者: shenaqs    时间: 2015-5-6 08:32
xfvbgdvds
作者: sj798    时间: 2015-5-6 08:43
看看效果,什么东西
作者: itcfan    时间: 2015-5-6 09:06

作者: 18667006365    时间: 2015-5-6 09:09
看看1厘米的小唧唧,
作者: a837198    时间: 2015-5-6 10:51
数组内容随机重新排列
作者: lgpingcy    时间: 2015-5-6 12:18
study
作者: ht5124251    时间: 2015-5-6 12:33
111111111111111111
作者: 续花丶    时间: 2015-5-6 13:47
学习一下.
作者: pplodd    时间: 2015-5-6 15:56
哈哈  比短么???才不跟你比呢
作者: laowantong    时间: 2015-5-6 17:32

作者: 东月山    时间: 2015-5-6 18:25
不管东西咋样 还是先谢谢了

作者: max7007    时间: 2015-5-10 00:28
好东西,必须要顶,,好好学习!!!
作者: wangsu321    时间: 2015-5-10 05:41
太坑人了,
作者: for    时间: 2015-5-11 13:12
地方的数据库副驾驶的减肥就圣诞节快发的是浪费了
作者: for    时间: 2015-5-11 13:24
sam7894604 发表于 2015-5-6 07:06
我也来看看~

虽然不可否认你的代码很精简,但是你有没有想过可读性,可能你现在能读懂,但是时间一长,代码一多。
在浩瀚如海的代码里,你还能记住这段代码的含义吗?还能迅速的把它用在别处吗?
所以,一味精简不可取,还要兼顾实用性

作者: sam7894604    时间: 2015-5-11 14:38
本帖最后由 sam7894604 于 2015-5-11 14:41 编辑
for 发表于 2015-5-11 13:24
虽然不可否认你的代码很精简,但是你有没有想过可读性,可能你现在能读懂,但是时间一长,代码一多。
在 ...




请注意发帖人的意思。

请把你精简之后的代码来代替回复,看你能不能更"短"...(注:封装函数无效)

我是告诉楼主可以这么写,我有说兼顾可读性了么?
感谢指教。

作者: chiayo    时间: 2015-5-12 08:38
呵呵,看卡
作者: zili5209    时间: 2015-5-14 18:13
11111111111111
作者: 花落莫相离    时间: 2015-5-31 20:40

作者: wqba00072    时间: 2015-5-31 22:29
是个什么东西
作者: 黎传晖    时间: 2015-5-31 23:27
111111111111111
作者: ab01    时间: 2015-6-1 09:32

作者: tan0360    时间: 2015-6-1 18:52
啊是对的撒大事
作者: 星.月    时间: 2015-6-7 21:30
回复学习一下
作者: qwe5565448    时间: 2015-6-13 01:50
看看答案。。。
作者: 4502727    时间: 2015-7-6 21:46
1
作者: douzhi011    时间: 2015-7-15 13:14

作者: wwkiqpl    时间: 2015-8-12 21:57
(五:数组内容随机重新排列)[附代
作者: liutao587    时间: 2015-8-15 23:46
淡淡的淡淡的淡淡的淡淡的淡淡的淡淡的淡淡的淡淡的的
作者: she52001    时间: 2015-8-22 14:11
来看下
作者: JSDYWZ    时间: 2015-8-25 19:46
回帖看的答案的都是1厘米的小唧唧
作者: JSDYWZ    时间: 2015-8-25 19:46
回帖看的答案的都是1厘米的小唧唧
作者: haleguu    时间: 2015-8-26 13:01
精神上貌似已经看过了,感觉还差一点,今天妥妥的一定看明白了
作者: 342695788    时间: 2015-9-6 23:21
1111111111111111
作者: 423369889a    时间: 2015-9-7 02:24
看看学习下 3Q
作者: 刷分de人    时间: 2015-9-17 23:01
数组很难搞啊
作者: qq641235265    时间: 2015-9-18 18:09
路过

作者: qq641235265    时间: 2015-9-18 18:09
路过

作者: 四水哥    时间: 2015-9-30 22:36
减到多少了
作者: nilivdeyu    时间: 2015-10-2 22:31
7777777
作者: nilivdeyu    时间: 2015-10-2 22:31
7777777
作者: nilivdeyu    时间: 2015-10-2 22:31
7777777
作者: nilivdeyu    时间: 2015-10-2 22:31
7777777
作者: nilivdeyu    时间: 2015-10-2 22:31
7777777
作者: 473095039    时间: 2015-10-6 14:19
654654564564654
作者: guanshui088    时间: 2015-10-6 21:24
投入服务而v
作者: 694840212    时间: 2015-10-15 11:01
案的都是1厘米的小唧唧,为了提
作者: 694840212    时间: 2015-10-15 11:01
案的都是1厘米的小唧唧,为了提
作者: somyyy    时间: 2015-10-16 01:28
我也忘记了
作者: cy7516    时间: 2015-10-16 20:51
看看减到几行了了,另求QQ群啊
作者: chinaxhb    时间: 2015-10-27 19:58
学习一下这个。
作者: shiye    时间: 2015-12-18 01:32

作者: q228662928    时间: 2016-5-12 14:23
答案的都是1厘米的小唧唧,为
作者: a283579604    时间: 2016-5-13 21:33

作者: happy2887    时间: 2016-5-14 00:32
我去这也行啊
作者: aoaoawei    时间: 2016-5-29 14:53
感谢楼主分享
作者: aa9631230    时间: 2016-6-6 23:17
我真是醉了
作者: 3256345    时间: 2016-6-12 14:04
看看真相
作者: 轮回    时间: 2016-6-21 16:59
看卡            
作者: 轮回    时间: 2016-6-21 16:59
看卡                     
作者: 2857989310    时间: 2016-7-1 19:26
学习学习下下
作者: 与鱼共舞    时间: 2016-8-30 23:42
大家一起学TC(五:数组内容随机重新排列)
作者: tbmbx2017    时间: 2016-9-11 14:07
楼主厉害,跪求内容
作者: 喜羊羊    时间: 2016-9-11 20:45
直接回帖看的答案的都是1厘米的小唧唧,为了提高也好,学习也罢,解闷也无所谓..
请把你精简之后的代码来代替回复,看你能不能更"短"...(注:封装函数无效)
作者: dongli    时间: 2016-9-14 23:13
dongodngd dgd g dg
作者: OOOO    时间: 2016-9-18 21:30
我很好奇
作者: 能灬哥    时间: 2016-9-24 10:20
6666666666666666666
作者: z475547146    时间: 2016-9-26 21:57
111111111111111111111111111111111
作者: spy1919    时间: 2016-11-14 20:32
看看。。。。。。。。
作者: yanjin0917    时间: 2016-11-19 22:31
王王王王王王王王王王王王
作者: 87010068    时间: 2016-11-30 13:32

作者: dzb123    时间: 2016-12-4 21:33
感觉  上面写的是这么回事
作者: sxw005    时间: 2016-12-6 10:04
利用电子白板的互动功能让同学们能迅速接收所要传授知识点;课前要求大家利用网络查询有关本课的相关知识点:作者、背景、地理、历史、文化……  感受古代诗文的美;激起学生学习古代诗文的兴
作者: 2904419710    时间: 2016-12-18 14:15
看看
作者: Demono    时间: 2016-12-18 19:28
高手就是不一样。赞。
作者: hgwwy    时间: 2017-4-24 17:34
谢谢分享~~ 看看这个是什么~~

作者: shanyuanxiaomei    时间: 2017-5-2 10:10
sdfsfwefwe
作者: kilsmls    时间: 2017-5-22 11:05
学习学习
作者: 一杯水    时间: 2017-5-30 14:03
························
作者: donggua11    时间: 2017-6-17 22:05
。。。。。。
作者: moujin    时间: 2017-7-8 13:39
qwe20445
作者: sutuan1106    时间: 2018-2-3 22:51
启动启动
作者: jdrj15106    时间: 2018-3-8 22:50
学习学习
作者: allure    时间: 2018-4-3 14:41
来看看怎么精简代码
作者: yjbdmc    时间: 2018-8-24 01:21
kkkkkkkkkk
作者: xtmxiatian    时间: 2018-8-31 19:44





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1