g**i 发帖数: 167 | 1 非常感谢大家热情迅捷的回答,大家的方法都非常的好,我从中学到了不少新东西,非
常感谢。
不过看了后,我发现可能我的那个问题表述得有点儿偏离我的原始想法,我的关键的问
题应该如下:
有一个具有100个分量的整数型矢量,我需要对每个分量进行某种操作,每次只能操作
一个分量,而且一个分量只能被操作一次,具体每一步是哪个分量被操作则是随机的。
这其实也相当于我有一个整数数组,每个整数的index是固定的,不能变,然后我随机
的从这些数中抽取一个进行操作,每个数只能被操作一次,直至所有的数被操作完。
请问这个如何能高效地实现?
再次感谢大家。 |
o*o 发帖数: 404 | 2 用另一个100维的数组对应你原来的数组。
【在 g**i 的大作中提到】 : 非常感谢大家热情迅捷的回答,大家的方法都非常的好,我从中学到了不少新东西,非 : 常感谢。 : 不过看了后,我发现可能我的那个问题表述得有点儿偏离我的原始想法,我的关键的问 : 题应该如下: : 有一个具有100个分量的整数型矢量,我需要对每个分量进行某种操作,每次只能操作 : 一个分量,而且一个分量只能被操作一次,具体每一步是哪个分量被操作则是随机的。 : 这其实也相当于我有一个整数数组,每个整数的index是固定的,不能变,然后我随机 : 的从这些数中抽取一个进行操作,每个数只能被操作一次,直至所有的数被操作完。 : 请问这个如何能高效地实现? : 再次感谢大家。
|
g**i 发帖数: 167 | 3 怎么讲?
【在 o*o 的大作中提到】 : 用另一个100维的数组对应你原来的数组。
|
s****r 发帖数: 11 | 4 I think your description has no problem. The algorithm by coconut can solve
it. The output of the algorithm is a permutation of [1..100], so just access
the coordinates based on the permutation.
【在 g**i 的大作中提到】 : 非常感谢大家热情迅捷的回答,大家的方法都非常的好,我从中学到了不少新东西,非 : 常感谢。 : 不过看了后,我发现可能我的那个问题表述得有点儿偏离我的原始想法,我的关键的问 : 题应该如下: : 有一个具有100个分量的整数型矢量,我需要对每个分量进行某种操作,每次只能操作 : 一个分量,而且一个分量只能被操作一次,具体每一步是哪个分量被操作则是随机的。 : 这其实也相当于我有一个整数数组,每个整数的index是固定的,不能变,然后我随机 : 的从这些数中抽取一个进行操作,每个数只能被操作一次,直至所有的数被操作完。 : 请问这个如何能高效地实现? : 再次感谢大家。
|
g**i 发帖数: 167 | 5 Oh, I see. thanks.
solve
access
【在 s****r 的大作中提到】 : I think your description has no problem. The algorithm by coconut can solve : it. The output of the algorithm is a permutation of [1..100], so just access : the coordinates based on the permutation.
|
c***c 发帖数: 21374 | 6 array[100]
for (i=0 to 99)
swap (array[i],array[rand(i+1,99)]
okay不?
感觉可以
【在 g**i 的大作中提到】 : 非常感谢大家热情迅捷的回答,大家的方法都非常的好,我从中学到了不少新东西,非 : 常感谢。 : 不过看了后,我发现可能我的那个问题表述得有点儿偏离我的原始想法,我的关键的问 : 题应该如下: : 有一个具有100个分量的整数型矢量,我需要对每个分量进行某种操作,每次只能操作 : 一个分量,而且一个分量只能被操作一次,具体每一步是哪个分量被操作则是随机的。 : 这其实也相当于我有一个整数数组,每个整数的index是固定的,不能变,然后我随机 : 的从这些数中抽取一个进行操作,每个数只能被操作一次,直至所有的数被操作完。 : 请问这个如何能高效地实现? : 再次感谢大家。
|