Само задание.
Напишите алгоритм подсчета среднего значения, или медианы, трех целых чисел. Входные данные для такого алгоритма распадаются на шесть групп; опишите их.
Собственно нам было сказано, пишите на любом языке, котором хотите. Пишу на php.
Хоть убейте, но скажем в простых кодах типа:
<?php
$arr=array(2,5,1);
foreach ($arr as $value)
{
$sum+=$value;
}
$c=count($arr);
echo 'Среднее значение= '.$sum/$c;
?>
или
<?php
$a1=2;
$a2=5;
$a3=1;
$a1=($a1+$a2+$a3)/3;
echo 'Среднее значение= '.$a1;
?>
я не вижу 6 различных классов входных данных.
В общем вопрос, где найти эти 6 классов и как написать код, чтобы эти 6 классов различались и действовали на скорость выполнения кода, т.к. в последующем вопрос идет такой "Какой случай для алгоритма является наилучшим? Наихудшим? Средним? (Если наилучший и наихудший случаи совпадают, то перепишите Ваш алгоритм с простыми условиями, не пользуясь временными переменными, так, чтобы наилучший случай был лучше наихудшего.)"
Я бы не писал сюда, но хоть убейте, не пойму, как можно оптимировать алгоритм или еще чего.
П.С классы - это группы данных. И при постановке этих групп в алгоритм - получается разная скорость выполнения алгоритма. Примерно так, кто не понял, что такое классы.
Примечание:
Может конечно на языке алгоритмов там можно различить, но просто на php не вижу разницы. Разве случаи, когда все данные равны между собой, когда не равны. И скажем зависимость от , так сказать, размера числа. Например будут числа 1 1 1 или 12232 123234 123324. Как то так....
Примечание:
Книжка эта под рукой.
В принципе оттуда знания и черпаю.
адания взято со второй главы. До нее все пробежал мельком, так как читать все не вижу смысла, суть глав ясна.
Примечание:
Только вот дело в том, что при любых входных данных выполняется одинаковое количество действий. Разве что зависит от величины числа, не более.
Примечание:
SashaSural , в принципе тоже возможно.
1. Проверить кратность трем, сократить, сложить, разделить на 3. Но тут уж точно код нагружен, правда если числа не огроменные. Хотя никто не говорил, какой именно алгоритм должен быть.
2. Числа все одинаковы, поэтому среднее не надо искать.
3. Числа разные и не кратны трем, обычное сложение и деление на 3.
Думаю в 4 группу нельзя записать скажем разниу чисел, в плане в одной ситуации число одно-двузначное, в другом трех-стозначное и т.д. Хотя кто их знает. А может и можно, тогда как раз получается 6 групп.
Т.е. что написано 3 штуки, их используем для больших чисел и для маленьких.
Примечание:
Хм, а может и врпавду.
Меня в основном смутило "или" в задании. Про среднее значение тоже сказано, а я так понимаю это разные вещи.
Или программа должна выполнить и то и то? ТОгда бы сказано было "и"
Примечание:
"11. Медиана
Не только среднее арифметическое показывает, где на числовой прямой располагаются числа какого-либо набора. Другим показателем является медиана — число, которое разделяет этот набор на две части, одинаковые по численности. Поясним на примерах, как найти медианы разных наборов чисел."
Выше верно подметили
Еще есть размышления в сторону медианы. Зависимость от чисел, скажем варианты такие
1. 1 2 3
2. 3 2 1
3. 1 1 2
4. 2 1 1
5. 1 2 1
6. 1 1 1
Может быть так? Ведь от сортировки тоже зависит скорость выполнения. Хотя в php есть функция сортировки, вот не знаю, самому сортировать или функцию использовать.
Примечание:
if (($arr[0]=$arr[1]) or ($arr[1]=$arr[2])) хотя такое условие обьединяет два случая
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.