<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="INTERSTITIAL"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
在我的控制台中的二进制点之后返回一个17位数的数字,因此它恰好为0的概率是天文数字低。它究竟是什么意思到技术上可以是0但永远不可能是1,当它基本上永远不会返回这些数字时呢?是什么导致了这个?有人可以给我一些例子Math.random()
的这个属性是否相关?
答案 0 :(得分:0)
通常,为了产生随机浮点值,首先生成随机整数,然后将其缩放到浮点范围。由于浮点值的二进制表示,在0和1之间存在两个幂均匀分布的值,不包括1.0。如果你确实包含1.0那么范围是2加1的幂;并且在这样的范围内生成均匀的随机整数要困难得多。
除此之外,返回1.0只会导致问题。在你将它乘以一个常数之后,你最终获得了极小的机会,但仍然有机会获得完全恒定的机会。即使在使用舍入到最接近的数量进行量化之后,与任何其他值相比,仍然只有一半的出现机会(零除外,这也会受到相同的惩罚)。
因此,它更容易做,更有用。
那就是说,对于完美均匀分布来说,这不是一个大惊小怪的地方。简单地通过将浮点值(通过常量限制为某些有限值集)乘以常数并对结果进行量化,您最终会得到一些比其他结果稍微(不可测量)的结果。