Перейти к содержанию
Среди трех чисел найти среднее
Просмотров 22.3к. Обновлено 15 октября 2021
Вводятся три разных числа. Найти, какое из них является средним (больше одного, но меньше другого).
Проверить, лежит ли первое число между двумя другими. При этом может быть два случая:
- первое больше второго и первое меньше третьего,
- первое меньше второго и первое больше третьего.
Если ни один из вариантов не вернул истину, значит первое число не среднее. Тогда проверяется, не лежит ли второе число между двумя другими. Это может быть в двух случаях, когда
- второе больше первого и меньше третьего,
- второе меньше первого и больше третьего.
Если эти варианты также не вернули истину, то остается только один вариант — посередине лежит третье число. Это при условии, что никакие два числа из трех не могут быть равны между собой. Иначе и здесь надо использовать логические выражения.
Pascal
даны три числа найдите среднее паскаль
var
a1, a2, a3: integer;begin
write ('Введите три числа: ');
readln (a1, a2, a3);if ((a1 > a2) and (a1 < a3)) or ((a1 < a2) and (a1 > a3)) then
writeln(a1)
else
if ((a2 > a1) and (a2 < a3)) or ((a2 < a1) and (a2 > a3)) then
writeln(a2)
else
writeln(a3);end.
Введите три числа: 3 5 4
4
Язык Си
#include < stdio.h>
main() {
int a, b, c;
scanf("%d%d%d", &a,&b,&c);
if (a > b && a < c || a < b && a > c)
printf("%dn", a);
else
if (b > a && b < c || b < a && b > c)
printf("%dn", b);
else
printf("%dn", c);
}
110 111 109
110
Python
найти среднее число из 3 чисел Python
print('Введите три числа: ')
a = int(input())
b = int(input())
c = int(input())if b < a < c or c < a < b:
print('Среднее:', a)
elif a < b < c or c < b < a:
print('Среднее:', b)
else:
print('Среднее:', c)
Введите три числа:
453
244
901
Среднее: 453
Basic-256
print "Введите три числа: "
input a
input b
input c
print "Среднее: ";
if a > b and a < c or a < b and a > c then
print a
else
if b > a and b < c or b < a and b > c then
print b
else
print c
endif
endif
Введите три числа:
45
60
54
Среднее: 54
Given 3 numbers, I need to find which number lies between the two others.
ie,given 3,5,2
I need 3 to be returned.
I tried to implement this by going thru all three and using if else conditions to check if each is between the other two.But this seems a naive way to do this.Is there a better way?
asked Apr 2, 2012 at 15:55
2
Put them in a list, sort them, pick the middle one.
answered Apr 2, 2012 at 15:56
Sven MarnachSven Marnach
557k115 gold badges924 silver badges825 bronze badges
5
>>> x = [1,3,2]
>>> sorted(x)[len(x) // 2]
2
answered Apr 2, 2012 at 16:01
![]()
jamylakjamylak
126k30 gold badges228 silver badges229 bronze badges
The fastest obvious way for three numbers
def mean3(a, b, c):
if a <= b <= c or c <= b <= a:
return b
elif b <= a <= c or c <= a <= b:
return a
else:
return c
answered Apr 2, 2012 at 16:45
Zaur NasibovZaur Nasibov
22k12 gold badges54 silver badges82 bronze badges
1
What you want is the median. You can use this code below for any number of numbers:
import numpy
numbers = [3,5,2]
median = numpy.median(numbers)
for a custom solution you can visit this page.
answered Apr 2, 2012 at 16:08
Thanasis PetsasThanasis Petsas
4,3185 gold badges30 silver badges56 bronze badges
2
You could do
numbers = [3, 5, 2]
sorted(numbers)[1]
answered Apr 2, 2012 at 15:57
![]()
David RobinsonDavid Robinson
76.2k16 gold badges163 silver badges183 bronze badges
1
This is a O(n) implementation of the median using cumulative distributions. It’s faster than sorting, because sorting is O(ln(n)*n).
def median(data):
frequency_distribution = {i:0 for i in data}
for x in data:
frequency_distribution[x] =+ 1
cumulative_sum = 0
for i in data:
cumulative_sum += frequency_distribution[i]
if (cumulative_sum > int(len(data)*0.5)):
return i
answered Apr 2, 2012 at 16:15
luke14freeluke14free
2,5211 gold badge17 silver badges25 bronze badges
2
Check this (Suppose list already sorted):
def median(list):
ceil_half_len = math.ceil((len(list)-1)/2) # get the ceil middle element's index
floor_half_len = math.floor((len(list)-1)/2) # get the floor middle element 's index'
return (list[ceil_half_len] + list[floor_half_len]) / 2
answered Oct 29, 2013 at 3:29
1
If it’s just for 3 numbers. First find the max and the min numbers in list. Remove them, the remainder of list is the medium. If you don’t want to use the «if-else» or «sorted()» that is.
def mid(a,b,c):
num = [a,b,c]
small, big = min(num), max(num)
num.remove(small)
num.remove(big)
return num[0] # return the remainder
answered Apr 25, 2020 at 7:38
![]()
samvsamv
112 silver badges3 bronze badges
Here is my attempt using a more pythonic version
def median(a):
sorted_a = sorted(a)
if len(a) % 2 == 0:
median = sum(sorted_a[(len(a)//2)-1:(len(a)//2)+1])/2.
else:
median = sorted_a[(len(a)-1)//2]
>>> x = [64630, 11735, 14216, 99233, 14470, 4978, 73429, 38120, 51135, 67060]
>>> median(x)
>>> 44627.5
>>> y = [1, 2, 3]
>>> median(y)
>>> 2
answered Jan 12, 2017 at 7:28
MichaelMichael
2,3941 gold badge35 silver badges55 bronze badges
If you wish to avoid sorting, you can do:
def find_median(x):
return sum(x) - max(x) - min(x)
answered Mar 30, 2017 at 19:11
Cabbage soupCabbage soup
1,3041 gold badge18 silver badges26 bronze badges
Given 3 numbers, I need to find which number lies between the two others.
ie,given 3,5,2
I need 3 to be returned.
I tried to implement this by going thru all three and using if else conditions to check if each is between the other two.But this seems a naive way to do this.Is there a better way?
asked Apr 2, 2012 at 15:55
2
Put them in a list, sort them, pick the middle one.
answered Apr 2, 2012 at 15:56
Sven MarnachSven Marnach
557k115 gold badges924 silver badges825 bronze badges
5
>>> x = [1,3,2]
>>> sorted(x)[len(x) // 2]
2
answered Apr 2, 2012 at 16:01
![]()
jamylakjamylak
126k30 gold badges228 silver badges229 bronze badges
The fastest obvious way for three numbers
def mean3(a, b, c):
if a <= b <= c or c <= b <= a:
return b
elif b <= a <= c or c <= a <= b:
return a
else:
return c
answered Apr 2, 2012 at 16:45
Zaur NasibovZaur Nasibov
22k12 gold badges54 silver badges82 bronze badges
1
What you want is the median. You can use this code below for any number of numbers:
import numpy
numbers = [3,5,2]
median = numpy.median(numbers)
for a custom solution you can visit this page.
answered Apr 2, 2012 at 16:08
Thanasis PetsasThanasis Petsas
4,3185 gold badges30 silver badges56 bronze badges
2
You could do
numbers = [3, 5, 2]
sorted(numbers)[1]
answered Apr 2, 2012 at 15:57
![]()
David RobinsonDavid Robinson
76.2k16 gold badges163 silver badges183 bronze badges
1
This is a O(n) implementation of the median using cumulative distributions. It’s faster than sorting, because sorting is O(ln(n)*n).
def median(data):
frequency_distribution = {i:0 for i in data}
for x in data:
frequency_distribution[x] =+ 1
cumulative_sum = 0
for i in data:
cumulative_sum += frequency_distribution[i]
if (cumulative_sum > int(len(data)*0.5)):
return i
answered Apr 2, 2012 at 16:15
luke14freeluke14free
2,5211 gold badge17 silver badges25 bronze badges
2
Check this (Suppose list already sorted):
def median(list):
ceil_half_len = math.ceil((len(list)-1)/2) # get the ceil middle element's index
floor_half_len = math.floor((len(list)-1)/2) # get the floor middle element 's index'
return (list[ceil_half_len] + list[floor_half_len]) / 2
answered Oct 29, 2013 at 3:29
1
If it’s just for 3 numbers. First find the max and the min numbers in list. Remove them, the remainder of list is the medium. If you don’t want to use the «if-else» or «sorted()» that is.
def mid(a,b,c):
num = [a,b,c]
small, big = min(num), max(num)
num.remove(small)
num.remove(big)
return num[0] # return the remainder
answered Apr 25, 2020 at 7:38
![]()
samvsamv
112 silver badges3 bronze badges
Here is my attempt using a more pythonic version
def median(a):
sorted_a = sorted(a)
if len(a) % 2 == 0:
median = sum(sorted_a[(len(a)//2)-1:(len(a)//2)+1])/2.
else:
median = sorted_a[(len(a)-1)//2]
>>> x = [64630, 11735, 14216, 99233, 14470, 4978, 73429, 38120, 51135, 67060]
>>> median(x)
>>> 44627.5
>>> y = [1, 2, 3]
>>> median(y)
>>> 2
answered Jan 12, 2017 at 7:28
MichaelMichael
2,3941 gold badge35 silver badges55 bronze badges
If you wish to avoid sorting, you can do:
def find_median(x):
return sum(x) - max(x) - min(x)
answered Mar 30, 2017 at 19:11
Cabbage soupCabbage soup
1,3041 gold badge18 silver badges26 bronze badges
|
0 / 0 / 0 Регистрация: 26.04.2022 Сообщений: 24 |
|
|
1 |
|
Даны три числа. Найти среднее из них (то есть число, расположенное между наименьшим и наибольшим)06.12.2022, 20:40. Показов 433. Ответов 2
Добрый вечер,нужен код к заданию:
__________________
0 |
|
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
06.12.2022, 20:40 |
|
Ответы с готовыми решениями: Даны три числа. Найти среднее из них (то есть число, расположенное между наименьшим и наибольшим)
Ввести три числа A, B, C. Вывести среднее из них (то есть число, расположенное между наименьшим и наибольшим) Даны 3 числа. Найти разность между наибольшим и наименьшим среди них
2 |
|
Mikail7D6 beginner 293 / 205 / 98 Регистрация: 02.08.2022 Сообщений: 333 |
||||
|
06.12.2022, 20:49 |
2 |
|||
|
Решениеrwzx_ooo,
7 9 3 —> 7
1 |
|
0 / 0 / 0 Регистрация: 26.04.2022 Сообщений: 24 |
|
|
06.12.2022, 21:11 [ТС] |
3 |
|
Спасибо
0 |
Оглавление:
- 1 Задача — Среди трех чисел найти среднее
— программирование на Pascal, Си, Кумир, Basic-256, Python- 1.1 Pascal
- 1.2 Язык Си
- 1.3 Python
- 1.4 Basic-256
Задача — Среди трех чисел найти среднее
— программирование на Pascal, Си, Кумир, Basic-256, Python
Вводятся три разных числа. Найти, какое из них является средним (больше одного, но меньше другого).
Проверить, лежит ли первое число между двумя другими. При этом может быть два случая:
- первое больше второго и первое меньше третьего,
- первое меньше второго и первое больше третьего.
Если ни один из вариантов не вернул истину, значит первое число не среднее. Тогда проверяется, не лежит ли второе число между двумя другими. Это может быть в двух случаях, когда
- второе больше первого и меньше третьего,
- второе меньше первого и больше третьего.
Если эти варианты также не вернули истину, то остается только один вариант — посередине лежит третье число.
Pascal
var
a1, a2, a3: integer;
begin
write (‘Введите три числа: ‘);
readln (a1, a2, a3);
if ((a1 > a2) and (a1 < a3)) or ((a1 < a2) and (a1 > a3)) then
writeln(a1)
else
if ((a2 > a1) and (a2 < a3)) or ((a2 < a1) and (a2 > a3)) then
writeln(a2)
else
writeln(a3);
end.
Введите три числа: 3 5 4
4
Язык Си
#include <stdio.h>
main() {
int a, b, c;
scanf(«%d%d%d», &a,&b,&c);
if (a > b && a < c || a < b && a > c)
printf(«%dn», a);
else
if (b > a && b < c || b < a && b > c)
printf(«%dn», b);
else
printf(«%dn», c);
}
110 111 109
110
Python
print(‘Введите три числа: ‘)
a = int(input())
b = int(input())
c = int(input())
if b < a < c or c < a < b:
print(‘Среднее:’, a)
elif a < b < c or c < b < a:
print(‘Среднее:’, b)
else:
print(‘Среднее:’, c)
Введите три числа:
453
244
901
Среднее: 453
Basic-256
print «Введите три числа: »
input a
input b
input c
print «Среднее: «;
if a > b and a < c or a < b and a > c then
print a
else
if b > a and b < c or b < a and b > c then
print b
else
print c
endif
endif
Введите три числа:
45
60
54
Среднее: 54
Did you find apk for android? You can find new Free Android Games and apps.
Среди трех чисел найти среднее
Вводятся три разных числа. Найти, какое из них является средним (больше одного, но меньше другого).
Проверить, лежит ли первое число между двумя другими. При этом может быть два случая:
- первое больше второго и первое меньше третьего,
- первое меньше второго и первое больше третьего.
Если ни один из вариантов не вернул истину, значит первое число не среднее. Тогда проверяется, не лежит ли второе число между двумя другими. Это может быть в двух случаях, когда
- второе больше первого и меньше третьего,
- второе меньше первого и больше третьего.
Если эти варианты также не вернули истину, то остается только один вариант — посередине лежит третье число. Это при условии, что никакие два числа из трех не могут быть равны между собой. Иначе и здесь надо использовать логические выражения.
как найти среднее число в Python
Учитывая 3 числа, мне нужно найти, какое число находится между двумя другими.
то есть, учитывая 3,5,2, мне нужно вернуть 3.
Я попытался реализовать это, пройдя через все три и используя условия if else, чтобы проверить, находится ли каждое из них между двумя другими, но это кажется наивным способом сделать это. Есть ли лучший способ?
На какой результат вы рассчитываете [1,1,2] ? — Tim Pietzcker
для [1,1,2], 1 следует взять как среднее число — damon
10 ответы
Поместите их в список, отсортируйте их, выберите средний.
ответ дан 02 апр.
Свен, это не только общий ответ, но и плохой вариант для трех чисел. Если такая подпрограмма появляется в задаче, связанной с тяжелыми вычислениями, создание списка из трех элементов и сортировка этого не подходит даже для Python. Представьте, что парень в следующий раз будет работать, например, на C ++, создает вектор из трех чисел и сортирует его . — Заур Насибов
@BasicWolf: Вы его тестировали? Разница не такая уж и большая — Никлас Б.
@Niklas B. Разница действительно небольшая. Меня беспокоят накладные расходы на решение для сортировки списков, и это звучит неправильно. Вы видели это: pyvideo.org/video/880/stop-writing-classes ? — Заур Насибов
@BasicWolf: Нет, но я проверю. Думаю, дело в том, что простота и надежность обычно являются наиболее важными аспектами вашего кода. — Никлас Б.
@BasicWolf: в большинстве случаев удобочитаемость важнее производительности, и вы не можете победить sorted((a, b, c))[1] в этом отношении. — Свен Марнах
Как найти среднее значение списка в Python
В этой статье мы рассмотрим различные способы найти среднее значение списка в списке Python. Среднее значение – это значение, которое представляет весь набор элементов данных или элементов.
Формула: Среднее значение = сумма чисел / общее количество.
Методы поиска среднего значения списка
Для вычисления среднего значения списка в Python можно использовать любой из следующих методов:
- Функция mean();
- Встроенный метод sum();
- Методы lambda() и reduce();
- Метод operator.add().
Функция mean()
Python 3 имеет модуль статистики, который содержит встроенную функцию для вычисления среднего числа. Функция statistics.mean() используется для вычисления среднего входного значения или набора данных.
Функция mean() принимает список, кортеж или набор данных, содержащий числовые значения, в качестве параметра и возвращает среднее значение элементов данных.
В приведенном выше фрагменте кода мы использовали метод statistics.round() для округления выходного среднего до определенного десятичного значения.
Использование функции sum()
Функция statistics.sum() также может использоваться для поиска среднего значения данных в списке Python.
Функция statistics.len() используется для вычисления длины списка, т.е. количества элементов данных, присутствующих в списке.
Кроме того, функция statistics.sum() используется для вычисления суммы всех элементов данных в списке.
Примечание: среднее значение = (сумма) / (количество).
3. Использование reduce() и lambda()
Мы можем использовать функцию reduce() вместе с функцией lambda().
Функция reduce() в основном используется для применения определенной (входной) функции к набору элементов, переданных в функцию.
- Первоначально функция reduce() применяет переданную функцию к первым двум последовательным элементам и возвращает результат.
- Далее мы применяем ту же функцию к результату, полученному на предыдущем шаге, и к элементу, следующему за вторым элементом.
- Этот процесс продолжается, пока не дойдет до конца списка.
- Наконец, результат возвращается на терминал или экран в качестве вывода.
Функция lambda() используется для создания и формирования анонимных функций, то есть функции без имени или подписи.
Функция operator.add() для поиска среднего значения списка
Модуль operator.add() содержит различные функции для эффективного выполнения основных вычислений и операций.
Функцию operator.add() можно использовать для вычисления суммы всех значений данных, присутствующих в списке, с помощью функции reduce().
Примечание: среднее значение = (сумма) / (длина или количество элементов)
Метод NumPy average() для вычисления среднего значения списка
Модуль NumPy имеет встроенную функцию для вычисления среднего значения элементов данных, присутствующих в наборе данных или списке.
даны 3 числа, мне нужно найти какое число лежит между двумя другими.
ie, учитывая 3,5,2
Мне нужно вернуть 3.
Я попытался реализовать это, пройдя через все три и используя условия if else, чтобы проверить, находится ли каждый между двумя другими.Но это кажется наивным способом сделать это.Есть ли лучший способ?
9 ответов
поместите их в список, отсортируйте их, выберите средний.
>>> x = [1,3,2]
>>> sorted(x)[len(x) // 2]
2
самый быстрый очевидный способ для три цифры
def mean3(a, b, c):
if a <= b <= c or c <= b <= a:
return b
elif b <= a <= c or c <= a <= b:
return a
else:
return c
вы могли бы сделать
numbers = [3, 5, 2]
sorted(numbers)[1]
что вы хотите-это в среднем. Вы можете использовать этот код для любого количества чисел:
import numpy
numbers = [3,5,2]
median = numpy.median(numbers)
для пользовательского решения вы можете посетить это страница.
Это O (n) реализация медианы с использованием кумулятивных распределений. Это быстрее, чем сортировка, потому что сортировка O(ln (n)*n).
def median(data):
frequency_distribution = {i:0 for i in data}
for x in data:
frequency_distribution[x] =+ 1
cumulative_sum = 0
for i in data:
cumulative_sum += frequency_distribution[i]
if (cumulative_sum > int(len(data)*0.5)):
return i
проверьте это (предположим, список уже отсортирован):
def median(list):
ceil_half_len = math.ceil((len(list)-1)/2) # get the ceil middle element's index
floor_half_len = math.floor((len(list)-1)/2) # get the floor middle element 's index'
return (list[ceil_half_len] + list[floor_half_len]) / 2
вот моя попытка, используя более подходящие для Python версии
def median(a):
sorted_a = sorted(a)
if len(a) % 2 == 0:
median = sum(sorted_a[(len(a)//2)-1:(len(a)//2)+1])/2.
else:
median = sorted_a[(len(a)-1)//2]
>>> x = [64630, 11735, 14216, 99233, 14470, 4978, 73429, 38120, 51135, 67060]
>>> median(x)
>>> 44627.5
>>> y = [1, 2, 3]
>>> median(y)
>>> 2
Если вы хотите избежать сортировки, вы можете сделать:
def find_median(x):
return sum(x) - max(x) - min(x)
Даны три числа. Найти среднее из них (т. е. число, расположенное между наименьшим и наибольшим)