随机地生成n个不超过n且不重复的正整数

本文探讨了在面试中遇到的问题——如何随机生成n个不超过n且不重复的正整数。通过分析三种不同的实现方案,从低效的重复判断到更优的数组打乱顺序,再到更巧妙的基于下标的交换方法,揭示了优化随机数生成的思路。最后提到了编程珠玑中的新解法,进一步减少了随机性的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



许久以前,参加校园招聘,在面试时被问到“如何随机地生成n个不超过n且不重复的正整数”。你会怎么做呢?n的值具体是多少并不重要,我们关心的重点是如何在n确定时设计一种法案来解决随机产生不重复的数的问题。下面就以n =100为例来说明几种实现方式,将产生的随机数存放于数组中。

方案1.

    话说当时见识少,功夫不到家,认为每次随机生成数字,再判断该数字是否已经重复,如果不重复则保留该值,否则重新产生新的随机数字。

import 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值