gpt4 book ai didi

c - 使用 rand() 生成没有数字重复的数字

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:17 24 4
gpt4 key购买 nike

我们如何使用 rand() 函数自定义代码以生成一个 n 位数字,其中 n<8,其中没有数字重复?假设我想生成一个从 1000 到 9999 的 4 位数字,这个数字不应该包含重复的数字:例如 1023 4798 等。顺便说一句,我们可能不会概括 n。

编辑

我浏览了我收到的问题的答案。老实说,我认为生成没有重复数字的数字序列的问题在我看来比生成没有重复数字的数字更容易。仍在寻找答案。

我的代码真是一团糟,说实话,没有一次尝试解决所述问题。我有一份纸质草稿,但它仍然基于为数字中的每个数字分配一个整数变量和一个小循环,该循环检查其中一些是否相等并递增/递减其中之一。即使对我来说,这听起来也是个坏主意,但这就是我所能想到的。

最佳答案

您有几个明显的选择:

  1. 随机选择一个数字,如果其中包含任何重复数字,请重新选择。如果 n 很高,这可能会变慢。

  2. 将数字从 0 到 9 随机打乱,取前 n 位。

  3. 保留剩余数字的数组。从数组中随机选择一个元素并将其从数组中删除。重复您需要的位数。

如果零不是合法的第一位数字,您将不得不解决这个问题。在每种情况下如何做到这一点应该是显而易见的。如果结果数字太低,您可以随时重新选择。

关于c - 使用 rand() 生成没有数字重复的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35209295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com