Пример решения. 1. Вывести на экран сумму N случайных чисел

Задача из этого списка.


<?php
/*Вывести на экран сумму N случайных чисел*/
for ($s1=0, $s2=1; $s1<10 && $s2<10; $s1++, $s2++) {
    
  echo rand($s1, $s2). "<br>";
 }

?>

Key Words for FKN + antitotal forum (CS VSU):

Лучше сократить количество переменных:

<?php
for ($s1=0 ; $s1<9 ; $s1++) {
    echo rand($s1, $s1+1). "<br>";
}
gani84's picture

Не совсем понятно)) Если честно)

\$s2 всегда на 1 больше, чем \$s1.
Зная \$s1, можно всегда найти значение \$s2.
Поэтому можно не использовать \$s2, и объём кода сократится.

gani84's picture

А вы читали условия №1 я его правильно понял просто я начинающий)

Сейчас посмотрел.

Вывести на экран сумму N случайных чисел.
ПРИМЕЧАНИЕ: подразумевается, что вы должны организовать цикл, который выполнится N раз и при этом в каждом своём витке выведет на экран случайное число.

Эта задача?

Думаю, правильно.
В решении действительно выводятся 9 случайных чисел.
Правда, это целые числа от 0 до 1, от 1 до 2, от 2 до 3, и так далее.

gani84's picture

Спасибо

vedro-compota's picture

Не выполнены следующие моменты по оформлению:

  1. В заголовке нет пояснения смысла задачи
  2. Нет ключевых слов
  3. Нет процитированного условия задачи (поэтому проверяющий вынужден переспрашивать у вас условие)
  4. Нет ссылки на список задач (аналогично)
  5. Открывающая угловая скобка в цикле стоит не там, где требуется.

(возможно есть что-то ещё)

Примеры правильного оформления есть по ссылкам тут: http://fkn.ktu10.com/?q=node/9517

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

melisa's picture

В Вашем ответе рассмотрен очень частный случай решения задачи.
Задача подразумевает, что:

  1. Числа должны быть случайными (какой диапазон должен быть, - не указано, но усложнять решение его динамическим изменением не требуется)
  2. Количество случайных чисел должно быть равно N (т.е. цикл должен повториться N раз. Для этого можно, например, произвести присвоение значения N до цикла)
  3. Не выполнено задание из первой же строки условия:
    Вывести на экран сумму N случайных чисел
gani84's picture

Вы хотите сказать мне надо сложить $s1 и $S2 и реализовать это в функции rand()
melisa's picture

$s1 и $s2 не являются случайными числами, упоминаемыми в условии. Случайные числа - генерируемые функцией rand(). N - их количество.
В Вашем решении N = 10:

<?php
/*Вывести на экран сумму N случайных чисел*/
for ($s1=0, $s2=1; $s1<10 && $s2<10; $s1++, $s2++) {
     
  echo rand($s1, $s2). "<br>";
 }
 
?>

Вы выводите только сами случайные числа.
По условию требуется вывести на экран сумму N случайных числел. Т.е., в данном случае, сумму 10 чисел, генерируемых Вами в цикле for. Например, записывайе её (сумму) в отдельную переменную, и выведете в конце на экран.

gani84's picture

<?php
/*Вывести на экран сумму N случайных чисел*/
$x = rand(1,10);
$y = rand(1,10);
$z = $x+$y;
for ($s1=0; $s1<$z; $s1++) {
   echo rand($z, $s1). "<br>";
}
?>
melisa's picture

  1. Сумма так и не выводится
  2. Поясните значение переменной $s1. Почему Вы используете её в качестве ограничителя диапазона? Почитайте про счётчик цикла здесь.
vedro-compota's picture

h2 для ссылки использовать не обязательно (исправил)

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

gani84's picture

Задача из этого списка.


<?php
/*Вывести на экран сумму N случайных чисел*/
for ($s1=0, $s2=1; $s1<10 && $s2<10; $s1++, $s2++) {
    
  echo rand($s1, $s2). "<br>";
 }

?>
melisa's picture

Вы не исправили ошибки, указанные в этом комментарии.

gani84's picture

<?php
$n = 8;
$x = (rand())+ (rand()) ;
for ($i = 0; $i < $n; $i++){
    echo $x."<br>";
}
?>

melisa's picture

здесь вы выводите на экран сумму случайных чисел n раз, а надо - сумму n случайных чисел 1 раз.

gani84's picture

<?php
$n = 50;
$n1 = 100
$x = rand($n, $n1);
for ($i = 0; $i < 1; $i++){
    echo $x."<br>";
}
?>
vedro-compota's picture

Ваш код:

$n = 20+30;
$x = rand($n, $n);
for ($i = 0; $i < 1; $i++){
    echo $x."<br>";
}

напишите коммментарий к каждой строке, чтобы нам стало ясно что вы понимаете, а что нет.
например, я напишу комментарий к первой строке:

$n = 20+30; // присваиваем переменной сумму чисел (неясно почему сразу не написать $n = 50)
$x = rand($n, $n);
for ($i = 0; $i < 1; $i++){
    echo $x."<br>";
}

сделайте то же самое с остальными.

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