Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 29, 2010 11:56:04

Posoh
От:
Зарегистрирован: 2010-11-29
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

Задали на задачи по информатике ( 1 курс ) , объясните как делать, в школе паскаль был с ним тоже трудновато было. А тут даже не знаю и как что.

1. Дано действительное число А. Вычислить f(A), если f(x)=0 при x<=0; f(x)=x2 при 0<x<=1, в противном случае f(x)=x2sin(&#960;*x2).

2. Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их возрастания, а также количество N этих чисел.

3. Дан одномерный массив числовых значений, насчитывающий N элементов. Исключить из массива элементы, принадлежащие промежутку .

4. Описать функцию PowerA(x,a,eps) вещественного типа (параметры x, a, eps — вещественные, |x| < 1, a > 0, eps > 0), находящую приближенное значение функции (1+x)a:
(1+x)a = 1 + a•x + a•(a–1)•x2 / 2! + … + a•(a–1)•…•(a–n+1)•xn / n! + … . В сумме учитывать все слагаемые, большие по модулю eps. С помощью PowerA найти приближенное значение (1+x)a для данных x и a при шести различных значениях eps.

Я конечно понимаю, надо бы хотя бы начать, хочу разобраться не знаю с чего, искал по форуму не нашел для себя полезной информации. Объясните чайнику дальше сам разбираться буду



Офлайн

#2 Ноя. 29, 2010 12:08:15

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

Начните с решения этих задач математически, на бумаге. Как бы вы решили задачу, без использования языков программирования?
В этот момент должны появится “правильные” вопросы.

Офлайн

#3 Ноя. 30, 2010 07:24:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9746
Репутация: +  843  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

3. Дан одномерный массив числовых значений, насчитывающий N элементов. Исключить из массива элементы, принадлежащие промежутку .
>>> la = list(range(-20, 21))
>>> ra = (-5, 8)
>>> la
[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> lb = [i for i in la if i not in range(ra[0], ra[1] + 1)]
>>> lb
[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>>
>>> list(filter(lambda n: n not in range(ra[0], ra[1] + 1), la))
[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>>
2. Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их возрастания, а также количество N этих чисел.
>>> a, b = 5, 20
>>> la = list(range(a, b + 1))
>>> print(la, len(la))
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 16
>>> print(*la)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
>>>



Отредактировано (Ноя. 30, 2010 07:33:35)

Офлайн

#4 Ноя. 30, 2010 16:54:10

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

Posoh
1. Дано действительное число А. Вычислить f(A), если f(x)=0 при x<=0; f(x)=x2 при 0<x<=1, в противном случае f(x)=x2sin(&#960;*x2).
>>> import math
>>> def f(x):
... if x <= 0:
... x = 0
... print x
... else:
... if x <= 1 and x > 0:
... print x * 2
... else:
... print x * x * math.sin(math.pi * x * x)
...
>>> f(4)
-3.13499226579e-014
>>> f(1)
2
>>> f(0)
0
>>> f(-5)
0
>>> f(15)
8.59765139942e-012
А вообще прочти азы программирования.



Офлайн

#5 Ноя. 30, 2010 16:59:06

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

Товарищи KarDer_Groom и py.user.next, убедительная просьба: помогайте людям решать задачи, а не решайте их за них, тем более в этом разделе. От того, что вы делаете не будет пользы ни вам, ни Posoh. Делайте как Ferroman :)



Офлайн

#6 Ноя. 30, 2010 17:10:56

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

regall
Да то всё понятно. Сомневался решать или нет, но вспомнил себя в трудные моменты и всё же решил в этот рас помочь. Больше постараюсь так не делать :)



Офлайн

#7 Ноя. 30, 2010 20:19:46

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

Тут вопрос стоит так - знал бы ты ответы сейчас, елсли бы не проходил трудные моменты?

Офлайн

#8 Дек. 1, 2010 08:50:23

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

Ferroman
знал бы ты ответы сейчас, елсли бы не проходил трудные моменты?
Хороший подход, убедил. ;) Не будем разводить офтоп. :cool:



Офлайн

#9 Дек. 2, 2010 21:42:30

Posoh
От:
Зарегистрирован: 2010-11-29
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

py.user.next
KarDer_Groom
Спасибо!
С первой задачей я и сам разобрался, второе тоже понятно. Третье даже по вашему решению не понял.
Насчет азов программирования, посоветуйте книгу



Офлайн

#10 Дек. 3, 2010 15:07:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9746
Репутация: +  843  -
Профиль   Отправить e-mail  

Задачи по питону не разберусь без помощи

3. Дан одномерный массив числовых значений, насчитывающий N элементов.
Исключить из массива элементы, принадлежащие промежутку .
>>> N = 7 # установили число элементов
>>> bc = (1, 4) # установили отрезок BC
>>> lst = list(range(1, 1 + N)) # создали список из диапазона от 1 до 8, не включая 8
>>> lst # выводим список в интерпретаторе (в скрипте потребуется print(lst) )
[1, 2, 3, 4, 5, 6, 7]
>>> res = [i for i in lst if i not in range(bc[0], bc[1] + 1)] # создаём список res, описание ниже
>>> res # выводим список в интерпретаторе (в скрипте потребуется print(res) )
[5, 6, 7]
>>>
# создаём список res
res = [i for i in lst if i not in range(bc[0], bc[1] + 1)]
берём в списке lst каждый элемент по очереди
на какое-то время присваиваем его переменной i
проверяем i в условии:
если оно находится в диапазоне от bc до bc + 1 (то есть от 1 до 5, не включая 5)
то помещаем i в результирующий список
иначе не помещаем его в результирующий список
повторяем, пока в исходном списке есть элементы (есть - в смысле при переборе, а не вообще)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version