校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 行测 > 逻辑计算题
题目

假定函数rand_k会随机返回一个[1,k]之间的整数(k>=2),并且每个整数值出现的几率相等。已知目前有rand_7的实现,请问通过调用rand_7和四则运算函数,并适当增加逻辑判断和循环等控制逻辑,下列函数可以实现的有______。

A.rand_3

B.rand_21

C.rand_23

D.rand_47

解答

正确答案是 ABCD

解析:

rand_7*7 = 7,14,21,28,35,42,49=A 

rank_7 = 1,2,3,4,5,6,7=B 

A,B任取一个元素求和,这个和出现概率都相同1/7*1/7. 

因此rand_7*7 + rank_7 = [8,56]的每个元素是等概率的 

rand_7*7 + rank_7 -7= [1,49]的每个元素是等概率的 

所以: 

int rand_k(){ n=50; while(n>k)n= rand_7*7 + rank_7 -7;return n;}/* 删去所有大于k的数字 */ 

但是rand_7*8这种方式就得不到均匀分布了 , 因此rank_1,...rank_49均可实现,也只能实现这49中情况。

C 2条回复 评论
西窗

可以把所有资料打包,发给我嘛?

发表于 2021-09-10 21:55:00
0 0
箱湘香樟树

推荐一个我使用过的框架,https://github.com/wuyouzhuguli/FEBS-Vue,UI还不错

发表于 2021-09-10 12:45:00
0 0