这对我来说有点奇怪。我相信我很快就会习惯它,但我只是想知道为什么它会这样。为什么包含minValue,但是Random.Next()专用的maxValue?
3
A
回答
6
原因1)maxValue - minValue
给出的范围内尽可能项目的数量,这样你就可以像这样使用代码:
var randomItemFromArray = MyArray[random.Next(0, MyArray.Length)];
要做到这一点,如果上限是包容看起来有点笨重/奇。
原因2)这是比较容易的代码
原因3)它使用浮点时保证了甚至蔓延的可能性 -
4
试想一下,你有几个范围,例如从
- 开始0
- 开始从100(范围的利息)从500(下一个范围)
- 开始从1000
random.Next(100, 500);
ie 1st ar gument是范围开始,第二个是下一个范围开始; 这是非常方便的,如果范围是复杂:首先我们要了解每个 范围开始(我们不需要计算确切的包容性上边界,但可以说“但不包括下一个范围”) 。例如。我们想在2016年2月获得随机时刻(最高秒):
DateTime start = new DateTime(2016, 2, 1);
// Please notice how much easier it is to put "1 Mar" than "29 Feb 23:59:59"
DateTime startNext = new DateTime(2016, 3, 1);
// Please notice: just subtraction
DateTime random = start +
TimeSpan.FromSeconds(random.Next((startNext - start).TotalSeconds));
相关问题
- 1. 为什么在Random.Next中minValue == maxValue?
- 2. SQL约束minvalue/maxvalue?
- 3. 为什么(int)(1.0/x)其中x = 0会导致In32.MinValue而不是Int32.MaxValue?
- 4. 迭代从MINVALUE到MaxValue的溢出
- 5. 为什么我的EntityA包含EntityB,但不是EntityB包含EntityA?
- 6. 随机分钟'minValue'不能大于'maxValue'
- 7. 为什么Int64.MaxValue很长?
- 8. minValue和maxValue作为Google Chart中hAxis的时间范围
- 9. Random.next()背后的算法是什么?
- 10. 为什么__setattr__的“name”参数包含类,但__getattr__不包含?
- 11. 什么是CRM2011中DateTime的MinValue?
- 12. 什么是字节的MINVALUE []在C#
- 13. RadNumericTextBox的MaxValue和MinValue根本不起作用
- 14. 为什么rails迁移包含belongs_to,但不包含has_many?
- 15. C#乘以含Random.next
- 16. 为什么Random.Next()总是返回相同数量的
- 17. 为什么USER_UNUSED_COL_TABS只包含大量未使用的列但不包含名称?
- 18. 为什么Maven 3.3不包含'javax.inject'但是Maven 3.2呢?
- 19. 为什么Int64.MaxValue返回Long?
- 20. 为什么Random.Next()返回int而不是uint?
- 21. Twig“仅包含”的用途是什么?
- 22. 我的气泡图延伸早已过了maxValue(最大值),和下面是minvalue
- 23. 为什么iostream包含time.h?
- 24. 为什么JDK包含JRE?
- 25. 为什么[url pathComponents]包含“/”?
- 26. 为什么BEGIN_COM_MAP包含DEBUG_QI_ENTRY?
- 27. 什么是专用查询?
- 28. 为什么从索引是包含但结束索引是排他性的?
- 29. C# - 为什么DateTime.MinValue和MaxValue不是编译时常量?
- 30. 什么是nameser_compat.h,为什么不包含它?