Уведомления

Группа в Telegram: @pythonsu

#1 Март 17, 2020 17:25:50

ElmarB
Зарегистрирован: 2020-02-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдает ошибку в тесте

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

Вычисляется скалярное произведение, как сумма произведений соответствующих компонент векторов.

В данной задаче вам необходимо написать функцию dot_product(N, vector1, vector2) , вычисляющую скалярное произведение для двух заданных векторов одинаковой размерности N .

Обратите внимание: в решении должно быть только объяевление одной функции dot_product и никакого другого кода.

Аргументы функции
Функция принимает в качестве аргументов размерность пространства N и 2 вектора. Гарантируется, что размерности векторов совпадают. Векторы заданы списками длины N .

Возвращаемое значение
Функция должна возвращать одно число – скалярное произведение заданных векторов.

Примеры
>> print(dot_product(3, (1,2,3), (1,2,3))
14
>> print(dot_product(3, (1, 2, 3), (4, 5, 6))
32

Мое решение:
Не врубаюсь как выложить код???

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

Отредактировано ElmarB (Март 17, 2020 17:34:46)

Офлайн

#2 Март 17, 2020 17:30:18

ElmarB
Зарегистрирован: 2020-02-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдает ошибку в тесте

Вот тест

Прикреплённый файлы:
attachment Uten navn.png (25,1 KБ)

Офлайн

#3 Март 17, 2020 17:32:10

ElmarB
Зарегистрирован: 2020-02-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдает ошибку в тесте

 def dot_product(vector1, vector2):
	scalar_product_of_vector = 0
	for i in range(len(A)):
		scalar_product_of_vector += B[i]*A[i]
	return scalar_product_of_vector
A = [int(x) for x in input().split()]
B = [int(y) for y in input().split()]
print(dot_product(A, B))

Офлайн

#4 Март 17, 2020 18:01:31

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Выдает ошибку в тесте

предполагаю что изза того что

ElmarB
Обратите внимание: в решении должно быть только объяевление одной функции dot_product и никакого другого кода.
уберите все что вне функции и скормите автотетсту только функцию, без всех этих input().split() и принтов.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 17, 2020 18:03:29)

Офлайн

#5 Март 17, 2020 18:20:34

ElmarB
Зарегистрирован: 2020-02-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдает ошибку в тесте

PEHDOM
предполагаю что изза того что
Спасибо, теперь всё заработало.

Офлайн

#6 Март 17, 2020 21:24:28

ElmarB
Зарегистрирован: 2020-02-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдает ошибку в тесте

Другое задание
Последний тест 10 выдает ошибку, связанную с памятью. MemoryError

Задача:
В некотором физическом эксперименте показания прибора снимались с частотой 5 измерений в секунду. Эксперимент проводился в течение довольно большого времени, и в результате накопилось очень много данных. Ученых, которые проводили данный эксперимент, очень интересует, какое максимальное значение измеряемой величины достигалось во время измерения. Но вот беда: на остановку установки также требуется секунда времени, и в течение этого времени с установки могут приходить совершенно любые значения величины. В связи с этим, показания последних 5 измерений учитывать при поиске максимального значения не следует.

Вам необходимо написать программу, которая в данном потоке чисел заранее неизвестной длины находит максимальное значение, отбрасывая при этом последние 5 измерений.

Формат входных данных
На вход вашей программе передается последовательность натуральных чисел – результаты измерений. Каждое новое число передается с новой строки. Гарантируется, что длина входной последовательности не меньше 6 и не превосходит 10 9 . На конце последовательности передается число 0.

Формат выходных данных
Программа должна вывести на экран одно число – максимальное значение входной последовательности за исключением последних 5 элементов.

Примеры
Ввод
1
2
3
4
5
6
0
Вывод
1

Ввод
1
5
2
15
373
232
43
21
5433
5312
0
Вывод
373

То что я написал

[code python]N = int(input())
A = []
max = 0
while N != 0:
A.append(N)
N = int(input())
n = len(A)

for i in range(0, n-5):
if A[i] > max:
max = A[i]

print(max)[/code]

Последний тест номер 10 выдает ошибку MemoryError.

Я так понимаю, что ему не нравится что то в линии 7, n=len(A).
Что можно исправить, усовершенствовать что бы этой ошибки не было?

Отредактировано ElmarB (Март 17, 2020 21:27:33)

Прикреплённый файлы:
attachment test 10.png (35,8 KБ)

Офлайн

#7 Март 17, 2020 23:14:05

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

Выдает ошибку в тесте

ElmarB
Другое задание
Последний тест 10 выдает ошибку, связанную с памятью. MemoryError
Эту задачу решали уже. И она делается не через накопление всех элементов, а через использование буфера на пять элементов.



Офлайн

#8 Дек. 26, 2020 00:58:31

Dark097
Зарегистрирован: 2020-12-26
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдает ошибку в тесте

ElmarB
можешь показать код у меня тоже такое задание, никак не получается

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version