Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 7, 2011 12:55:00

coni-lole
От:
Зарегистрирован: 2010-12-10
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

Isem
Тогда со сложностью O(N), а именно N:
if 6*sum( i*i for i in lst ) == N*(N+1)*(2*N+1):
print( "Да, это так" )
Ну если мне покажут, что это не так, тогда возьмем третью степень (…) и упремся в теорему Ферма.
lst =

Для кубов, например,



Отредактировано (Фев. 7, 2011 13:01:51)

Офлайн

#2 Фев. 12, 2011 19:30:53

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

Да, забыл поставить простое условие на длину списка. Ну то есть len(lst) == N. Странно, что ни кто не обратил внимания на это.



Офлайн

#3 Фев. 12, 2011 20:14:47

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

doza_and
9^2 + (9 - 1)^2 == 12^2 + 1 True
10^3 + (10 - 1)^3 == 12^3 + 1 True

поэтому предлагаемый вами алгоритм некорректен.
Isem
а, забыл поставить простое условие на длину списка. Ну то есть len(lst) == N. Странно, что ни кто не обратил внимания на это.
У вас есть данные в математике.



Офлайн

#4 Фев. 12, 2011 20:24:41

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

doza_and
10^3 + (10 - 1)^3 == 12^3 + 1 True
На всякий случай подчеркну: куда делась сумма восьми единиц в квадрате?



Офлайн

#5 Фев. 12, 2011 21:02:29

coni-lole
От:
Зарегистрирован: 2010-12-10
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

Isem
Да, забыл поставить простое условие на длину списка. Ну то есть len(lst) == N. Странно, что ни кто не обратил внимания на это.
lst = (2, 1, 2, 3, 3, 3, 7)
len(lst) = 7
>>sum(i**3 for i in range(1,7))==sum(i**3 for i in (2, 1, 2, 3, 3, 3, 7))
True
Еще условия?



Офлайн

#6 Фев. 12, 2011 21:25:23

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

>>> list(range(1,7))
[1, 2, 3, 4, 5, 6]
Может быть я не умею считать до семи?



Офлайн

#7 Фев. 12, 2011 22:17:33

coni-lole
От:
Зарегистрирован: 2010-12-10
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

Isem
>>> list(range(1,7))
[1, 2, 3, 4, 5, 6]
Может быть я не умею считать до семи?
Сглупил, извиняюсь.
Но тогда вы не ответили не предыдущий ответ
def s(x):
return sum(c**3 for c in x)

>>> s((5, 5, 1, 4, 5, 1))
441
>>> s((1,2,3,4,5,6))
441
>>>



Офлайн

#8 Фев. 12, 2011 22:22:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

По поводу N я подумал что перед этим у вас будет N=len(lst) зачем дополнительно N передавать.
Извините наверное недостаточно подробно написал.
Пусть длина списка больше или равна 9
и одна последовательность есть
она удовлетворяет условиям задачи и ваш алгоритм дает True
получим из нее другую последовательность заменой пары рядом стоящих цифр.
она не удовлетворяет условиям задачи но ваш алгоритм дает True
поскольку 9^2 + (8)^2 == 12^2 + 1
Таким образом, существуют корректные входные данные для которых алгоритм дает некорректный результат.



Офлайн

#9 Фев. 18, 2011 18:27:55

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

Ну в алгоритме не квадрат, а куб, и я указал, что куб - это не последнее число (там многоточие поставлено).



Офлайн

#10 Фев. 18, 2011 19:24:27

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Хитрый поиск в списке

coni-lole
Но тогда вы не ответили не предыдущий ответ
Код:

def s(x):
return sum(c**3 for c in x)

>>> s((5, 5, 1, 4, 5, 1))
441
>>> s((1,2,3,4,5,6))
441
>>>
Вы абсолютно правы. В данном случае поставьте степень 4 и после этого Вы предолжите другой контр-пример и так далее. Но разве это не стимулирует к тому, чтобы придумать что-то, что будет о чем вспомнить в конце жизни (требуется гений)?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version