网站位置: turnitin/查重 /当前页面

如何降低随机数的重复率

点赞:46874 浏览:91653 更新时间:2024-04-17 投稿人:原创本站原创

论文抄袭率检测后生成4个报告PDF、网页等离线浏览格式,包括简洁报告、详细报告、比对报告、PDF报告。详细展现相似内容比对、相似文献汇总、引用片段出处、总相似比、引用率、复写率和自写率。

此文章是检测抄袭有关的知识,可用于查抄袭检测相关问题解惑。

一、该如何让随机数不重复我想不到了

Random需要一个种子, 如果没给用预设的, 因为每次都一样, 所以一定会按照相同顺序, 每次开启都一致.

常见做法就是将时间当作种子, 每次运行的时间都不会一样, 自然就不会重复了。

二、EXCELRAND()公式如何避免产生重复的随机数

如何降低随机数的重复率

工具材料:Microsoft Office Excel2023版,Excel表格。

1.首先选中Excel表格,双击打开。

2.然后在该界面中,选中要显示随机数的单元格。

3.再者在该界面中,公示框中输入随机数公式=RAND()。

4.其次在该界面中,选中单元格右下角,向下拖动。

5.继续在该界面中,选中要用的随机数单元格,右键点击复制选项。

6.然后在该界面中,选中第二列,右键点击粘贴选项。

7.然后在该界面中,选中要显示不重复的随机数的单元格。

8.再者在该界面中,公示框中输入不重复的随机数公式=RANK(B1,B$1:B$10)。

9和其次在该界面中,选中单元格右下角,向下拖动。

10和最后在该界面中,成功显示不产生重复的随机数的单元格。

三、如何使每次产生的随机数互不相同

用rand()是产生随即数,如果不想要重复的话,只要弄一个调用函数把整个数组检测一下,看看这次产生的随即数在不在次数组中,不在的话添加,然后进行后面的,在的话舍弃进行下一个随即数。

四、如何在生成的随机数当中筛选掉重复的数

你把获得的随机数做数组的索引就可以了:

string result=strrandata;

如果想获取不重复的随机数常用的有三种方法,下面我以生成110之间的10个不重复的随机数为例介绍生成不重复的随机数的三种方法:

1,通过while循环来实现

通过while循环不停的生成随机数,直到生成一个不重复的为止,这种方法比较容易想到,但是效率也比较低下,实例代码如下:

static void Main(string args)

{

int result = new int10;

int tmp = 1;

Random random = new Random();

bool repeat = false;

for (int i = 0; i < 10; i)

{

repeat = true;

while (repeat)

{

repeat = false;

tmp = random.Next(1, 11);

for (int j = 0; j < i; j)

{

if (tmp == resultj)

{

repeat = true;

break;

}

}

}

resulti = tmp;

}

for (int i = 0; i < 10; i)

Console.WriteLine(resulti.ToString());

}

2,通过for循环来实现

方法1使用了多处循环嵌套,效率十分低下,所以我应用一定的技巧来减少循环嵌套,来达到提高程序效率的目的。主要思路是如果检测到重复,就把循环变量减1,这样来重新进行一次循环,重新生成一个随机数,直到生成一个不重复的随机数为止,实例代码如下:

static void Main(string args)

{

int result = new int10;

int tmp = 1;

Random random = new Random();

bool repeat = false;

for (int i = 0; i < 10; i)

{

repeat = false;

tmp = random.Next(1, 11);

for (int j = 0; j < i; j)

{

if (tmp == resultj)

{

repeat = true;

break;

}

}

if (!repeat)

{

resulti = tmp;

}

else

{

i = i 1;循环变量1

}

}

for (int i = 0; i < 10; i)

Console.WriteLine(resulti.ToString());

}

这个方法减少了一层循环嵌套,效率上有一定的改善!

3,通过随机排序来实现

这种方法彻底的颠覆了方法1和2的基本思路,先初始化一个包含数字110的数组,然后每次循环取一个随机位置,将这个位置的元素和最后一个位置的元素交换!实例代码如下:

static void Main(string args)

{

int result = new int10;

for (int i = 0; i < 10; i)

resulti = i 1;

for (int j = 9; j > 0; j)

{

Random r = new Random();

int index = r.Next(0, j);

int temp = resultindex;

resultindex = resultj;

resultj = temp;

}

for (int i = 0; i < 10; i)

Console.WriteLine(resulti.ToString());

}

这种方法消除了循环嵌套,效率上获得了进一步的改善,但是也有一定的限制,如果要生成5个110之间的随机数,那这种打乱顺序的方法就无法使用了!

总结:方法1效率比较低下,一般不推荐使用!

方法2比较通用,效率高于方法1,但是效率低于方法3

方法3虽然效率比较高,但是只能应用与特定的情况下。

五、excel随机生成范围内数字,不重复

我们生成多个随机的不重复数,可以实现通过随机生成的数字做分组用。

生成简单的随机数很简单,但是要生成不重复的随机数相对而言会比较麻烦。

这里从易到难介绍几种解决问题的方法。

操作方法

01

我们这里假定要

在B列生成20个随机且不重复的数据,然后根据随机计算的结果给A列的姓名进行排序及分组。

02

如果我们

单纯地以RANDBETWEEN函数来做(下图1),生成的数据会有重复数。

03

作者给出的对策如下:

1)在C列建立辅助列,然后输入:=RAND()

RAND函数的作用是

生成0到1之间的随机数字,因为是很多位数的小数,所以基本不会出现重复值(或者说概率低到可以忽略不计)。

辅助列相关知识请参考下方经验:

04

如果仍然担心会出现重复值,我们可以

再使用一个RAND函数与之相乘,进一步降低出现重复值的概率。

05

2)在B列使用RANK函数对C列的数据进行排序。

由于C列的数值没有重复,所以RANK函数排序后的结果也不会发生重复。

06

上面的办法是比较简单的办法,我们也可以参考下图函数公式操作,但相对比较麻烦,有兴趣可以研究研究。

07

3)RAND函数和RANDBETWEEN函数都可以

通过按F9键进行数据更新。

评论,上文是一篇与论文查抄袭查重有关的注意事项,对您的检测有参考作用的相关的研读。