
=ROUND(A1,0) 四舍五入取整
=ROUNDDOWN(A1,0) 按指定位数舍去数字
=ROUNDUP(A1,0) 按指定位数向上舍入指定位数后面的小数
=INT(A1) 将数字向下舍入到最接近的整数
题目是从CU上看到的,我的算法是:
int rand7()
{
int a;
while( (a=rand5()5+rand5()) > 26 );
return (a-3)/3;
}
可惜没办法验证,不知道这个算法是否正确?(问题一)。
(验证方法是通过双循环将两个rand5()分别换成1 2 3 4 5,但剔除掉(5,2)(5,3)(5,4)(5,5)这四个组合)
算法思路是:
1 通过 rand5()5+rand5() 产生 6 7 8 9 10 11 …… 26,27 28 29 30 这25个数,每个数的出现机率相等
2 只需要前面 37 个数,所以舍弃后面的4个数
3 将 6 7 8 转化为 1,9 10 11 转化为 2,……,24 25 26 转化为 7。公式是 (a-3)/3
注:
我觉得不能将 while( (a=rand5()5+rand5()) > 26 ) 其中一个rand5()移到while之外,即不能写成
int b = rand5();
int a;
while( (a=b5+rand5()) > 26 ); 或 while( (a=rand5()5+b) > 26 );
因为出现 >26 的情况,说明 b 有很大机率很大,从而又导致while之后的a有很大机率很大,破坏了平衡性。
这个备注中的看法对么?
javascript取整数的方法如下:
Mathround(num)四舍五入
Mathfloor(num)小于等于num的整数
Mathceil()大于等于num的整数
parseInt(num) 小于等于num的整数,与floor的区别是parseInt参数可以是string类型,如'5abc'返回5。
以上就是关于EXCEL 如何取整数全部的内容,包括:EXCEL 如何取整数、如何获取1-5的随机整数、javascript取整数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)