Как создать случайное плавание в Objective-C?

I'm trying to create a random float between 0.15 and 0.3 in Objective-C. The following code always returns 1:

int randn = (random() % 15)+15;
float pscale = (float)randn / 100;

What am I doing wrong?

33
задан mskfisher 9 May 2012 в 16:32
поделиться

3 ответа

Попробуйте следующее:

 (float)rand() / RAND_MAX

Или введите значение от 0 до 5:

 float randomNum = ((float)rand() / RAND_MAX) * 5;

Несколько способов сделать то же самое.

20
ответ дан 27 November 2019 в 17:43
поделиться
  1. используйте arc4random () или введите ваши случайные значения
  2. попробуйте

     float pscale = ((float) randn) / 100.0f;
    
4
ответ дан 27 November 2019 в 17:43
поделиться

Ваш код работает для меня, он выдает случайное число от 0,15 до 0,3 (при условии, что я использую srandom () ). Вы вызывали srandom () перед первым вызовом random () ? Вам нужно будет предоставить srandom () некоторое энтропийное значение (многие люди просто используют srandom (time (NULL)) ).

Для более серьезной генерации случайных чисел ознакомьтесь с arc4random , который используется в криптографических целях. Эта функция случайных чисел также возвращает целочисленный тип, поэтому вам все равно нужно будет привести результат к типу с плавающей запятой.

3
ответ дан 27 November 2019 в 17:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: