猿问

二维数组随机数怎么产生,c语言

我需要一个二维数组里一定数量的随机数,但是好难啊。。。。。。不要重复的

冯宝宝
浏览 3365回答 2
2回答

傻圆傻圆

归根结底就是如何产生随机数且随机数不重复,产生随机数的话,只需要先通过srand()设定随机数种子,然后通过调用rand()产生随机数。srand(time(NULL)); rand();对于如何使其生成的数字不重复,我暂时能想到以下几种方案:每次新生成一个数字,都对整个二维数组进行遍历,如果新生成的数字以及存在,则重新生成一个数字。将生成的数字保存起来,如果新生成的数字已经被保存过,则重新生成一个数字。手动设定或随机生成一个随机数的列表,每次随机从中选取一个,随后从列表中将其删除。对于以上三种方案:对于1号方案,是最容易实现的,但是如果数组空间较大,是一个速度很慢,编写简单的方案。对于2号方案,将数字保存起来,又需要能够快速的判断一个新的数字是否已经存在于其中,需要使用二叉树来进行存储,实现起来较为复杂,但是优点是速度快,编写复制的方案。对于3号方案,通过手动输入或者通过1号方案较慢的生成列表,有了列表之后,进行之后的操作应该是这3个方块最快的,但是缺点也显而易见,改动数据范围,整个列表都需要重新生成。

楠宝宝_

C语言的话,还算简单的,难点在于如何生成随机数。然后循环给定义二维数组入值就好了。大佬需要我给你写剩下的吗?
随时随地看视频慕课网APP
我要回答