Ruby 中的数值处理、随机数生成与正则表达式应用
1. 银行家舍入法的原理
在处理大量数字求和时,我们希望无论在何处进行数值舍入,总和基本保持不变。传统舍入法中,中间值向上舍入,这往往导致舍入后的数字总和比直接截断的相同数字集合的总和要高,使得舍入后的总和准确性降低。而银行家舍入法中,中间值向上或向下舍入的可能性大致相等,因此舍入后的数字总和相对于截断总和没有偏差。
2. Ruby 中的随机数生成
2.1 Kernel#rand 方法
Ruby 提供了多种生成随机数的方法,最简单的是 Kernel#rand(max = 0) 方法。由于它在 Kernel 中可用,因此可以随时调用 rand 。
- 若不传入参数,将得到一个大于等于 0 且小于 1 的伪随机浮点数。
- 若传入一个大于等于 1 的整数参数,则会得到一个大于等于 0 且小于该参数的伪随机整数,例如 rand(1) 始终等于 0。
- 非整数参数会使用 to_i.abs 进行转换,这意味着负参数将返回正值,浮点参数将被截断。若 arg.to_i.abs 等于 0,则 rand 会恢复为无参数的行为。
- 若参数是一个范围, rand 会返回该范围内的值。若范围的两端都是整数,结果将是整数;若任一端是浮点数,结果也将是浮点数。
2.2 Kernel#srand 方法
有时我
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



