Я интерпретация «матча» означать, что вы хотели бы реализации IOS и Android, чтобы получить ту же последовательность значений, если высевают одинаково. Вы можете сделать это, используя стандартную реализацию Mersenne Twister, mt19937. У Apple есть реализация, доступная в Swift через GameplayKit. Вы можете подтвердить свое поведение и воспроизводимость в Playground:
import GameplayKit
let source = GKMersenneTwisterRandomSource(seed: 123)
source.nextUniform() // => 0.3132002
source.nextUniform() // => 0.5559791
source.nextIntWithUpperBound(20) // => 13
let source2 = GKMersenneTwisterRandomSource(seed: 123)
source2.nextUniform() // => 0.3132002
source2.nextUniform() // => 0.5559791
source2.nextIntWithUpperBound(20) // => 13
Согласно Apple's documentation,
... если инициализировать экземпляр GKMersenneTwisterRandomSource и совместимой реализацию, используя то же начальное значение, как генерировать the такая же последовательность цифр.
Я читаю это, чтобы сказать, что он должен давать «соответствие» с реализацией ссылок C++ или Java, источник которой можно загрузить с сайта mt19937, связанного выше.
ADDENDUM
Похоже, что реализация GameplayKit дает воспроизводимые результаты, но вывод не соответствует эталонной реализации Хиросимы. Here's a port Быстро, что я сделал пару лет назад из стандартной реализации C для mt19937. Это дает идентичные результаты, как реализация ссылки на С, при посеве идентично. Таким образом, порт Java доступен по ссылке, предоставленной ранее, поэтому это должно дать вам решение, совместимое между платформами.
Каковы трудности для реализации этого на каждой платформе? На андроиде это 'new Random(). NextInt()' –
Вот ссылка, которая может вам помочь. [Здесь] (http://stackoverflow.com/questions/24007129/how-does-one-generate-a-random-number-in-apples-swift-language) –
Что вы подразумеваете под «match»? – cyroxis