10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
1

Функция: решение уравнений степени не выше второй

18.01.2018, 20:46. Показов 62794. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сделайте функцию solve(*coefficients), которая умеет решать уравнения степени не выше второй (квадратные и линейные).

Если у функции три аргумента, их надо трактовать как a, b и c в уравнении ax2+bx+c=0.
Если два — как коэффициенты b и c в уравнении bx+c=0.
Если один — как коэффициент c в уравнении c=0.
Если список коэффициентов пуст или коэффициентов больше трёх, то функция должна вернуть None.

Значения корней возвращайте в том же виде, как их возвращала функция roots_of_quadratic_equation(a,b,c) из первой части задачи, приведенной в прошлом уроке. Для решения можно как переписать ту функцию, так и использовать её внутри новой функции
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2018, 20:46
Ответы с готовыми решениями:

Решение диофантовых уравнений второй степени по схеме Горнера
"Решение диофантовых уравнений второй степени по схеме Горнера" есть такое задание, не прошу...

Уравнения степени не выше второй
Напишите функцию roots_of_quadratic_equation(a,b,c), которая принимает параметры a,b,c и возвращает...

Уравнения степени не выше второй
Напишите функцию roots_of_quadratic_equation(a,b,c), которая принимает параметры a,b,c и возвращает...

Уравнения степени не выше второй
Добрый день. Помогите найти ошибку в решении. Есть задача: Сделайте функцию solve(*coefficients),...

Уравнения степени не выше второй - 2
Сделайте функцию solve(*coefficients), которая умеет решать уравнения степени не выше второй...

30
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
18.01.2018, 23:34 2
Покажи функцию roots_of_quadratic_equation(a,b,c)
1
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
21.01.2018, 17:46  [ТС] 3
Я задачу из прошлого урока не сделал!
0
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
21.01.2018, 17:48 4
Покажи эту задачу, какие там требования
1
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
21.01.2018, 17:50  [ТС] 5
Вот:
Напишите функцию roots_of_quadratic_equation(a,b,c), которая принимает параметры a,b,c и возвращает решения уравнения ax2+bx+c=0.

Возвращаемое значение у функции ровно одно, а корней может быть от нуля до двух (есть еще один случай: a=b=c=0, при котором решением является любое число; про него ниже), поэтому сделать так, чтобы эта функция возвращала просто значение корня, не получится.

Вместо этого вы должны вернуть из функции список, содержащий значения всех корней уравнения (одно, два или ни одного). Если корнем является любое значение x, верните вместо списка чисел – список, содержащий одну строку “all” (["all"])

Не забудьте рассмотреть случаи, когда квадратное уравнение вырождается до линейного (a=0)
Также бывает, что линейное уравнение вырождается еще дальше – до уравнения, в котором x не участвует вовсе (a=b=0). В этом случае мы получаем уравнение c=0, которое, в зависимости от значения c, либо не имеет корней, либо корнем является любой x.

Если решите то буду вам благодарен!
0
5 / 5 / 1
Регистрация: 04.02.2018
Сообщений: 10
13.02.2018, 19:18 6
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
import math
def roots_of_quadratic_equation(a,b,c):
    if a==0 and b==0 and c==0:
        return ['all']
    elif a == 0 and b == 0:
        return []
    elif a==0:
        return [(c*(-1))/b]
    elif b==0:
        return [math.sqrt((-1*b)/a)]
    elif  c==0:
        return[0, (-1*b)/a]
    else:
        q = b**2
        w = -4*a*c
        D = q+w
        if D<0:
            return[]
        elif D== 0:
            return[(-1*b)/(2*a)]
        else:
            D = math.sqrt(D)
            #print(((-1*b)-D)/2*a, ((-1*b)+D)/2*a)
            return[int(((-1*b)-D)/(2*a)), ((-1*b)+D)/(2*a) ]
#roots_of_quadratic_equation(1,2,3)


Простите, что косо-криво.
1
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
13.02.2018, 19:29  [ТС] 7
Тест 1

Ресурсы 82ms/10.26Mb

Ввод

1 2 1

Правильный ответ

-1

Stderr

Traceback (most recent call last):
File "normalize.py", line 1, in <module>
values = input().strip().split()
EOFError: EOF when reading a line
make: *** [run] Error 1

Сообщение чекера

Completion status: ABNORMAL_EXIT
Term sig: null
Error code: 2

Добавлено через 1 минуту
Вводится строка, а затем её разбирают на А, В, С
0
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
13.02.2018, 19:32 8
Python
1
a, b, c = input().strip().split()
и перед использование в int перевести
0
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
13.02.2018, 19:52  [ТС] 9
Вставь в код а то я не понел
0
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
13.02.2018, 20:03 10
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
27
28
import math
def roots_of_quadratic_equation(a,b,c):
    if a==0 and b==0 and c==0:
        return ['all']
    elif a == 0 and b == 0:
        return []
    elif a==0:
        return [(c*(-1))/b]
    elif b==0:
        return [math.sqrt((-1*b)/a)]
    elif  c==0:
        return[0, (-1*b)/a]
    else:
        q = b**2
        w = -4*a*c
        D = q+w
        if D<0:
            return[]
        elif D== 0:
            return[(-1*b)/(2*a)]
        else:
            D = math.sqrt(D)
            #print(((-1*b)-D)/2*a, ((-1*b)+D)/2*a)
            return[int(((-1*b)-D)/(2*a)), ((-1*b)+D)/(2*a) ]
 
a, b, c = input().strip().split()
 
roots_of_quadratic_equation(int(a),int(b),int(c))
0
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
13.02.2018, 20:10  [ТС] 11
неправильно всё равно
0
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
13.02.2018, 20:11 12
Значит ошибка в другом месте
0
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
13.02.2018, 20:13  [ТС] 13
А я понял, нужно вот это
Цитата Сообщение от ТабуретY Посмотреть сообщение
a, b, c = input().strip().split()
перенести в функцию
0
5 / 5 / 1
Регистрация: 04.02.2018
Сообщений: 10
13.02.2018, 21:53 14
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
import math
def roots_of_quadratic_equation(a,b,c):
    if a==0 and b==0 and c==0:
        return ['all']
    elif a == 0 and b == 0:
        return []
    elif a==0:
        return [(c*(-1))/b]
    elif b==0:
        return [math.sqrt((-1*b)/a)]
    elif  c==0:
        return[0, (-1*b)/a]
    else:
        q = b**2
        w = -4*a*c
        D = q+w
        if D<0:
            return[]
        elif D== 0:
            return[(-1*b)/(2*a)]
        else:
            D = math.sqrt(D)
            #print(((-1*b)-D)/2*a, ((-1*b)+D)/2*a)
            return[int(((-1*b)-D)/(2*a)), ((-1*b)+D)/(2*a) ]
#roots_of_quadratic_equation(1,2,3)

Этот у меня принял.
1
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
22.03.2018, 00:35 15
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
27
28
29
30
31
import numpy as np
 
 
def roots_of_quadratic_equation(*k):
    a, b, c = k[0], k[1], k[2]
 
    D = b ** 2 - 4 * a * c  # дискриминант
    x1 = (-b + D ** 0.5) / (2 * a)  # первый корень
    x2 = (-b - D ** 0.5) / (2 * a)  # второй корень
 
    # округление
    if isinstance(x1, complex):
        x1 = np.round(x1, 2)
    else:
        x1 = round(x1, 2)
    if isinstance(x2, complex):
        x2 = np.round(x2, 2)
    else:
        x2 = round(x2, 2)
 
    return x1, x2
 
 
def solve(*coeffs):
    if len(coeffs) == 3:
        return roots_of_quadratic_equation(*coeffs)
    elif len(coeffs) == 2:
        b, c = coeffs[0], coeffs[1]
        return -c / b
    else:
        return 0
1
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
22.03.2018, 19:37  [ТС] 16
Вердикт Я.Контест: runtime-error

ompiling/file main.py || true


stderr:
Тест 1

Ресурсы 80ms/10.18Mb

Ввод

1 2 1
Правильный ответ

-1
Stderr

Traceback (most recent call last):
File "main.py", line 1, in <module>
import numpy as np
ImportError: No module named numpy
Traceback (most recent call last):
File "normalize.py", line 1, in <module>
values = input().strip().split()
EOFError: EOF when reading a line
make: *** [run] Error 1
Сообщение чекера

Completion status: ABNORMAL_EXIT
Term sig: null
Error code: 2
0
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
23.03.2018, 14:00 17
Тогда без округления:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
def roots_of_quadratic_equation(a, b, c):
    D = b ** 2 - 4 * a * c  # дискриминант
    x1 = (-b + D ** 0.5) / (2 * a)  # первый корень
    x2 = (-b - D ** 0.5) / (2 * a)  # второй корень
 
    if x1 == x2:
        return x1
    else:
        return x1, x2 
 
def solve(*coeffs):
    if len(coeffs) == 3:
        return roots_of_quadratic_equation(*coeffs)
    elif len(coeffs) == 2:
        b, c = coeffs[0], coeffs[1]
        return -c / b
    else:
        return 0
0
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
24.03.2018, 17:08  [ТС] 18
Это не правильно! Там проблема скорей всего с вводом данных!
Вердикт Я.Контест: runtime-error

ompiling/file main.py || true


stderr:
Тест 1

Ресурсы 80ms/10.16Mb

Ввод

1 2 1
Правильный ответ

-1
Stderr

File "main.py", line 2
SyntaxError: Non-UTF-8 code starting with '\xe4' in file main.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Traceback (most recent call last):
File "normalize.py", line 1, in <module>
values = input().strip().split()
EOFError: EOF when reading a line
make: *** [run] Error 1
Сообщение чекера

Completion status: ABNORMAL_EXIT
Term sig: null
Error code: 2
0
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
24.03.2018, 17:18 19
Цитата Сообщение от Pavlin234 Посмотреть сообщение
SyntaxError: Non-UTF-8 code starting with '\xe4' in file main.py on line 2, but no encoding declared
Объясни мне принцип чекера, это сайт какой-то?
Для начала: удали мои комменты в коде


test: http://rextester.com/KVKJ27965
0
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
25.03.2018, 08:57  [ТС] 20
Сайт для решения задач по питону!
0
25.03.2018, 08:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2018, 08:57
Помогаю со студенческими работами здесь

Уравнения степени не выше второй — часть 3
Напишите программу, которая запрашивает у пользователя строку с коэффициентами уравнения (степени...

Уравнения степени не выше второй — часть 2
Сделайте функцию solve(*coefficients), которая умеет решать уравнения степени не выше второй...

Уравнения степени не выше второй — часть 3
Напишите программу, которая запрашивает у пользователя строку с коэффициентами уравнения (степени...

Уравнения степени не выше второй — часть 3
Напишите программу, которая запрашивает у пользователя строку с коэффициентами уравнения (степени...

Уравнения степени не выше второй — часть 2
Сделайте функцию solve(*coefficients), которая умеет решать уравнения степени не выше второй...

Уравнения степени не выше второй — часть 3
есть код import math def roots_of_quadratic_equation(a, b, c): if a == 0 and b == 0 and c...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru