Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
1

Как найти номер вещественного числа, которое ближе всего к целому числу?

23.10.2013, 10:15. Просмотров 2081. Ответов 11
Метки нет (Все метки)

Дано 20 вещественных чисел. Найти порядковый номер того из них, которое ближе всего к какому-нибудь целому числу.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2013, 10:15
Ответы с готовыми решениями:

Найти порядковый номер того числа вещественного массива, которое наиболее близко к целому числу
Дано 10 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к целому...

Определить номер элемента массива, который находится ближе всего к данному целому числу
Привет всем. Дано числа х1, х2, х3, ... , х25. Опредилить номер того, который находится само...

Найти число, которое ближе всего к целому
Добрый день! Помогите, пожалуйста, решить задачу Только каким-нибудь примитивным способом Дан...

Найти в последовательности число, которое ближе всех к целому числу
Дано натуральное число n и последовательность действительных чисел a1, a2, ..., an. Найти в...

11
rpsv
53 / 49 / 16
Регистрация: 14.10.2013
Сообщений: 161
23.10.2013, 10:30 2
Georguy, вот решение (не проверял, надо тестировать):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import math
 
#
# Список чисел (как задавать сами выбирайте, это для примера)
#
numbers = [1.23, 4.56, 5.67]
 
#
# Получили дробные части от каждого числа
#
fractionals = [math.modf(x)[0] for x in numbers]
 
#
# Находим самую минимальную дробную часть
#
min_fract = min(fractionals)
 
#
# Индекс числа с минимальной дробной частью
#
index = fractionals.index(min_fract)
 
#
# Вывод ответа
#
print ( numbers[index] )
Добавлено через 2 минуты
Вот инфа по функции modf и самой библиотеки math:

http://docs.python.org/2/library/math.html
http://www.tutorialspoint.com/python/number_modf.htm
0
Alexan1987
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 4
23.10.2013, 11:47 3
Все верно, только в инструкции print нужно написать не само число numbers[index], а просто index, тогда получится порядковый номер нужного нам числа.
0
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
24.10.2013, 18:16  [ТС] 4
rpsv, блин, я в питоне вообще ничего не понимаю, а тут надо срочно сделать все. даже время на разбирание нет.
напишите, пожалуйста, программ полностью
0
Alexan1987
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 4
25.10.2013, 12:40 5
Цитата Сообщение от Georguy Посмотреть сообщение
rpsv
напишите, пожалуйста, программ полностью
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python
#-*- coding: utf-8 -*-
 
import math
 
numbers = [1.23, 3.11, 4.56, 5.67, 4.04] # Список чисел
 
fractionals = [math.modf(x)[0] for x in numbers] # Получили дробные части от каждого числа
 
min_fract = min(fractionals) # Находим самую минимальную дробную часть
 
index = fractionals.index(min_fract) # Индекс числа с минимальной дробной частью
 
print index   # Вывод ответа
Готовая программа во вложении. Поменяете расширение на .py и можно будет запускать. Все!
0
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
02.11.2013, 16:58  [ТС] 6
Alexan1987,
не работает
0
4kpt
9 / 9 / 1
Регистрация: 31.10.2013
Сообщений: 20
02.11.2013, 23:50 7
Действительно неверно. Представим себе ситуацию. Число 4.22 и число 4.89. В результате работы программы выдасть 0, что неверно. Потому как ближе всего к целому числу цифра 4.89. А именно к 5.

Можно примерно так:

Python
1
2
3
4
numbers = [4.22, 4.89, 5.10, 4.11]
data = [min(divmod(x, 1)[1], 1 - divmod(x, 1)[1]) for x in numbers]
position = data.index(min(data))
print position
P.S. Не люблю загружать дополнительные модули. Решил так. Просто и доступно...
0
milssky
7 / 7 / 0
Регистрация: 05.08.2012
Сообщений: 34
Завершенные тесты: 3
03.11.2013, 14:35 8
Может я глуп, но ближе всего будет максимум (или минимум, в зависимости от знака) последовательности.
0
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
03.11.2013, 21:09  [ТС] 9
4kpt, все-равно программа работает неверно
0
4kpt
9 / 9 / 1
Регистрация: 31.10.2013
Сообщений: 20
04.11.2013, 00:10 10
Georguy
Простите, но тогда Вы дали неправильное техническое задание.
Нет в математике такого понятия, как "к какому-нибудь целому числу".
Естественно было предположить, что любому ближайшему для дробного числа, целому числу, т.е. у каждого числа будет свои рассчитанные два целых числа.
Видимо Вы это видите не совсем так. Сложно понять, так как Ваши мысли прочитать еще невозможно. А по односложным ответам а-ля "работает неверно" вообще ничего не понятно. Либо дайте нормальное задание, либо объясните, что конкретно "работает неверно". А еще лучше, чтобы не было недомолвок, напишите пример. Мол есть такие числа - должен получиться такой результат, и есть такие - вот такой результат. А то возникает ощущение, что Вы над нами глумитесь...
0
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
04.11.2013, 15:08  [ТС] 11
4kpt, Дано 20 вещественных чисел. Найти порядковый номер того из них, которое ближе всего к какому-нибудь целому числу.
Программа на паскале выглядит так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Program s1;
   uses crt;
   const
      N=20;
   type
      T=array[1..N] of real;
   var
      a:T;
      min, i: byte;
begin
   clrscr;
   writeln('массив :');
   min:=1;
   For i:=1 to N do
      begin
         a[i]:=100*random;
         write(a[i]:8:2);
         If abs(a[i]-round(a[i])) < abs(a[min]-round(a[min])) then 
            min:=i;
      end;
   writeln;
   writeln('Ближе всего к целому:',a[min]:6:2);
end
Надо ее переписать еще и на питоне
0
4kpt
9 / 9 / 1
Регистрация: 31.10.2013
Сообщений: 20
05.11.2013, 01:55 12
Покажите цифры, которые Вы вводите и покажите результат.
Я догадываюсь, в чем проблема, но мне нужно убедиться.
0
05.11.2013, 01:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2013, 01:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Одномерные массивы. Найти порядковый номер того элемента, который ближе всего к какому-нибудь целому
Помогите, пожалуйста, написать программу в Паскале &quot;Дано 20 вещественных чисел. Найти порядковый...

Порядковый номер числа массива, который ближе всего к заданному числу
Написать программу, обрабатывающую одномерный массив.Задана последовательность из N вещественных...

Найти порядковый номер того из них, которое наиболее близко к какому-нибудь целому числу
помогите пожалуйста на завтра надо Программа, Дано 80 вещественных чисел. Найти порядковый номер...

Найти порядковый номер того из чисел, которое наиболее близко к какому-нибудь целому числу
Помогите с массивом!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.