Хитър и китайски случаен или "закона за запазване на масата не е прекратен», savepearlharbor

Всички снимки (на снимката) направиха в Paint'e.

За пример, стандартната поплавъка / двойна случаен в интервала от 0 до 1 (в нашия случай, един не е включена в комплекта, защото генерира фракция). Ние също имаме на разположение набор от числа. И така В математиката, можете просто да протегне умножение. Но в действителност, компютърът е по-добре да не правите това, и да генерират плътен последователност, както е. Как да го направя? Правилно: да генерира най-малко две случайни числа. Долната линия е, че обхваща всички възможни точност при генериране на случайни числа в интервала (в този случай от 0 до N).

Standard случаен. Точността на такава, каквато е.
случаен = случаен ()

Dual случаен. Никой не знае, но това вреди само цялостната точност на случайни числа.
случаен = случаен () * 2.0

Китайски двойно случаен. Не вреди на точността или вредата не е силна.
случаен = случаен ()> 0,5. случаен (). случаен () + 1.0

Малко по-професионално. Долната линия е, че генерира отделен число и фракционна част. Като китайски брат, не влияят на точността.
случаен = етаж (случаен () * some_integer) + случаен ()

Какво има? Факт е, че в първия случай, ние просто "се простира" вероятността (* и /). В този случай, опасността за много големи стойности сериозно да увреди точността. В други случаи, точност се генерира за фракционна и число част. Това е възможно просто да се измести (операция + и -) и култура (макс, мин, скоба). Можете също така да се опита да изтръгне дивизия. Но се умножи участък на последователност по-добре в краен случай.

илюстрация

Той донесе по-жива картина. Две или един случаен: да решите.

Дадох кратко обяснение за точността на случайни числа. Ако вашата производителност не е от значение, по-добре е да не се тегли, и се изсипва.