Задача 2. N случайных чисел (каждое с новой строки) из диапазона [-21, 35]

Задача №2 из списка задач по PHP

Вывести на экран N случайных чисел (каждое с новой строки) из диапазона [-21, 35]

  $nl = "<br/>";
  echo "N случайных чисел (каждое с новой строки) из диапазона [-21, 35]";
  $N = 10;
  $i = 0;
  $x = 0;
  while (++$i <= $N) 
      echo $x = rand(-22, 36).$nl;
melisa's picture

  1. итераций больше, чем N, соответственно, выводится N+1 случайных чисел.
  2. числа -22 и 36 здесь попадают в выборку, а по условию не должны
  3. объявление $x здесь избыточно. Т.к. результат нигде не используется, можно печатать просто rand()

Обязательно запускайте код для проверки, это позволит сразу заметить неточности.

moberaptor's picture

1.

итераций больше, чем N, соответственно, выводится N+1 случайных чисел.

Да, спасибо! Разумеется ++$i
2.

числа -22 и 36 здесь попадают в выборку, а по условию не должны

о_0 это же отрезок [-22, 36], интервал бы обозначался (-22, 36) или я не прав?
3.

объявление $x здесь избыточно. Т.к. результат нигде не используется, можно печатать просто rand()

Согласен полностью, это сделано с перспективой отладки, чтобы можно было в Watch добавить переменную.

Обязательно запускайте код для проверки, это позволит сразу заметить неточности.

Честно слово, когда писал - писал в обычном блокноте, не было возможности :(

Спасибо Вам!

Честно слово, когда писал - писал в обычном блокноте, не было возможности :(

Это неясно, ведь есть такие сайты, как
http://phptester.net/

И можно скачать php на http://php.net.

vedro-compota's picture

Честно слово, когда писал - писал в обычном блокноте, не было возможности :(

Да, запуск и самостоятельная проверка обязательны перед публикацией.
В программе обучения приводится список онлайн-интерпретаторов: http://fkn.ktu10.com/?q=node/7715

_____________
матфак вгу и остальная классика =)

moberaptor's picture

Как это ни смешно звучит, но я не смог сложить два и два, хотя про этот сайт прекрасно знал... точнее про этот: http://rextester.com/
Спасибо!

melisa's picture

о_0 это же отрезок [-22, 36], интервал бы обозначался (-22, 36) или я не прав?

Вы правы, но:

  • В условии задачи необходимо брать числа из отрезка [-21, 35].
  • В коде же скобки не обозначают отрезок или интервал, а ограничивают аргументы функции rand(). Механизм её действия такой, что числа, указанные в качестве аргументов включаются в выборку.

Следовательно, получается так:

rand(-21, 35);
vedro-compota's picture

просьба также заменить стандартные тэги. Как именно это делать указано в требованиях к оформлению, на которые мы ссылались ранее.

_____________
матфак вгу и остальная классика =)

moberaptor's picture

Я наверное не прав, но разве не лучше с точки зрения SEO добавлять теги, дополнительно:
вот так

vedro-compota's picture

старые тэги лучше удалять

_____________
матфак вгу и остальная классика =)