我是靠谱客的博主 冷静斑马,最近开发中收集的这篇文章主要介绍rand函数怎么避免重复_用随机数来做到公平公正,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

随机函数rand()大家都比较熟悉,可是否可以用这个函数解决实际中的问题,还是需要好好思考一下。

比如下图这种情况 ,如果将一列的姓名随机排列。

851bc36b309d79daf8d4abd385492949.gif

如果大家都要求公开公平,那这种方法帮你的大忙了。

第一步:建辅助列,这是关键的一步,大家可以仔细看一下公式,除了B2单元格是一个随机函数,后面的都是生成的不重复随机数。

a7c2bad280e485648a03d51d55a4bde7.gif

第二步:如果不重复设计随机数都搞定了,后面的事情就简单多了,只需要按顺序引用姓名就行了。

f4615a324bba431f1661752e9921d79a.gif

如果说这种单列的情况容易解决,那把这些姓名做成多行多例的随机排序呢?很常用的就是座位公开公正的随机排列。

看下图这种情况:多行多列随机排序

0c4918ed6fca3c23287103dbe55ec570.gif

当我们每刷新一次,这些名字会随机变化,这就达到了座位公开公正的安排,谁也别想占便宜。

看看怎么设计。

第一步:建立相同大小的随机数。

ddb1c6fb005c9418814ee777f78bc90c.gif

建立这一组随机数的目的是让这些名字有一个大小之分,因为rand函数产生重复的机率几乎为零,所以对应的位置肯定有一个先后。

第二步,把这些随机数的排名先后计算出来。

e028af387e4d475e28655eb322d50504.gif

如果我们知道随机排名的顺序,那再用函数引用出对应的名字,是不是就比较简单了。

第三步,引用出对应的排名位置。

37d7c4af41378d69af8841da6edc59a2.gif

有时候,做到公正公平,让大家心服口服,就是这么简单。

9788c322bb8594d1240e8ac6285af641.png
e5d4d82bfd79babc9036a69e8689d03c.png

最后

以上就是冷静斑马为你收集整理的rand函数怎么避免重复_用随机数来做到公平公正的全部内容,希望文章能够帮你解决rand函数怎么避免重复_用随机数来做到公平公正所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部