【发布时间】:2012-01-23 04:01:37
【问题描述】:
我想在 C 中创建一个函数。它将返回一个 N 范围内的随机整数,例如:-
兰德()%N;
但问题是我想跟踪唯一性。我不希望数字重复。但我也可以通过创建一个数组并在其中复制生成的整数来做到这一点。喜欢 :-
array[count] = rand() % N; 并每次检查生成的数字是否已经在其中。 (只需在数组[] 中搜索);这是一种简单但正确的方法。这将需要很多 if's 和 for's;为此工作。
这是我能想到的最好的了。
问题是,我想为这个问题找到最好的/优化的解决方案。最有效的方法是什么?
让我们澄清一些事情:- 我想从一个始终唯一的 NSArray 在 UILabel 中设置一些文本。我的 NSArray 正在从 Plist 获取数据,而我的 Plist 有超过 1000 个条目。如果我想多次这样做会影响性能,所以我想要一些有效的方法来做到这一点。
【问题讨论】:
-
如果保证没有重复就不再随机了,这不就是逻辑上的吗?
-
“随机”和“唯一”不属于同一个句子。您要解决的具体问题是什么?
-
可以说我正在尝试用随机数填充一个数组,直到 ceil 为 100,或者 iphone dev 的另一个示例是我在 NSArray 的 1000 个对象的标签中显示随机对象。跨度>
-
@user:你想要做的是有效地shuffle一组数字。这已在各种情况下多次讨论过。
标签: objective-c c logic