@ru_python

Страница 943 из 9768
Kolyann
07.06.2016
16:50:13
но если нужен сам алгоритм, то

minval = a if b < a and b < c: minval = b elif c < a and c < b: minval = c print(minval)

Petr
07.06.2016
16:52:12
а почму не min()?

Kolyann
07.06.2016
16:53:11
ну, я так понимаю что там задания для тех кто ещё не знает про мин

Google
Petr
07.06.2016
16:53:41
о_о

ну ок

Andrey
07.06.2016
16:56:10
Кстати, как вы бы решили задачку: написать функцию min без ветвлений и библиотечных функций?

Andrei
07.06.2016
16:56:36
Плохая задачка.

работает только на некоторых числах.

Kolyann
07.06.2016
16:58:37
what if b=c?
ну ладно, заменим всё на <=

Kolyann
07.06.2016
16:58:44
и правда

I S
07.06.2016
16:58:53
причем только при b=c

в остальных случаях - забить

Andrei
07.06.2016
17:01:27
А ты решение сначала напиши.

Google
I S
07.06.2016
17:02:01
А ты решение сначала напиши.
подожди, ты про какую? написать функцию или найти минимальное?

я думал,что про найти минимальное

Andrey
07.06.2016
17:03:00
про эту
Та задача решается очень просто: def min(a, b): return a + b - abs(a - b) def abs(n): return sqrt(n * n) def sqrt(n): ...//Пока не придумал

Andrei
07.06.2016
17:09:26
а sqrt считается типа библиотечная?

Petr
07.06.2016
17:10:05
да так-то min max sqrt abs - стандартная библиотека

Andrei
07.06.2016
17:10:06
И еще, в питоне длинка из коробки?

Andrey
07.06.2016
17:10:33
а sqrt считается типа библиотечная?
Нет, походу её не написать без условий.

Andrei
07.06.2016
17:10:39
Можно конечно.

Но тогда будет ровно как я сказал — этот минимум будет работать только для некоторых чисел.

Andrey
07.06.2016
17:11:12
а sqrt считается типа библиотечная?
По идее основная проблема - написать модуль без условий.

Viktor
07.06.2016
17:11:35
А циклы можно?

Andrei
07.06.2016
17:11:47
А циклы можно?
очевидно, нет.

Viktor
07.06.2016
17:12:05
Хех

Andrey
07.06.2016
17:12:08
А циклы можно?
Цикл - это условие.

Viktor
07.06.2016
17:12:10
херню спросил

Petr
07.06.2016
17:12:22
def random(x): return 42

Andrei
07.06.2016
17:12:28
В общем берем разложение sqrt(n) в ряд Маклорена берем то количество слагаемых ряда, которое доставляет нам нужную точность и всё.

Google
Andrei
07.06.2016
17:12:43
Поэтьому будь это задача на плюсах скажем для uint32_t

Я бы просто написал нужное количество битовой магии.

Для произвольного длинного n это скорее всего не решается.

Andrey
07.06.2016
17:15:17
Я бы просто написал нужное количество битовой магии.
Ок. Пусть это задача на плюсах и нужно написать модуль для uint32_t. Как бы ты сделал?

def sqrt(x): return x**0.5 :)
Ну, всё-таки это читы во многом)

Petr
07.06.2016
17:16:10
а каков смысл всего этого7

?

Petr
07.06.2016
17:16:50
понятно. соревнование по дрочке вприсядку ?

Andrey
07.06.2016
17:18:34
min неверно работает жеж
Пополам ещё, согласен.

Andrei
07.06.2016
17:18:40
в 2000 году этот метод запатентовали

инженеры из sun

Viktor
07.06.2016
17:18:59
ЛОЛ

Andrei
07.06.2016
17:18:59
и его нельзя теперь в процах использовать :D

Google
Andrey
07.06.2016
17:19:12
Для uint?

Andrei
07.06.2016
17:19:20
для int

Марк
07.06.2016
17:19:28
Пополам ещё, согласен.
и твоя не решит min([1,2,3])

Andrey
07.06.2016
17:19:29
Ты про минимум?

Andrei
07.06.2016
17:19:34
про abs

инструкция abs в процессорах есть.

Andrey
07.06.2016
17:19:58
Andrei
07.06.2016
17:21:08
int32_t mask = value » sizeof(int32_t) * CHAR_BIT - 1; return (value + mask) ^ mask;

Admin
ERROR: S client not available

Andrei
07.06.2016
17:21:23
Запатентованная версия отличается

return (value ^ mask) - mask;

вот так.

Viktor
07.06.2016
17:22:05
0_0

Andrei
07.06.2016
17:23:06
Минимум соотв работает вот так:

retrun y ^ ((x ^ y) & -(x < y));

Но это грязный хак в виде каста bool к числу

Andrey
07.06.2016
17:24:08
Andrei
07.06.2016
17:24:26
Да. это вычисляется в bool, который интерпретируется как число.

Потому что в процессоре в общем так и произойдет.

вместо cmp будет sub

Google
Viktor
07.06.2016
17:25:02
Так условия запрещены же

Andrei
07.06.2016
17:25:22
Запрещены условные переходы.

Здесь нет if-а

Viktor
07.06.2016
17:25:40
А, точно, "ветвления"

Andrei
07.06.2016
17:25:50
и как я только что написал в сгенериррованно процессорном коде не будет инструкций je\jne

итд.

Но ок, можно переписать так:

return y + ((x - y) & ((x - y) » (sizeof(int32_t) * CHAR_BIT - 1)));

Viktor
07.06.2016
17:27:14
Бог ты мой

Andrei
07.06.2016
17:27:20
Это конечно всё не надо, но есть платформы с дорогим бренчингом.

Там это используется.

Но я это знаю, просто потому что плюсер. Питонистам это не надо конечно.

Viktor
07.06.2016
17:29:46
return y + ((x - y) & ((x - y) » (sizeof(int32_t) * CHAR_BIT - 1)));
return y + ((x - y) & ((x - y) >> (sizeof(int32_t) * CHAR_BIT - 1)));

Andrei
07.06.2016
17:30:10
» замени на >>

Andrey
07.06.2016
17:30:31
Но я это знаю, просто потому что плюсер. Питонистам это не надо конечно.
Слушай, если ты знаешь на таком уровне всё, то можешь сказать как на уровне железа происходит синхронизация с тактовым генератором? Через R-S триггеры? А то не особо понятно почему у модуля, который вроде как запоминает значение 2 входа и 2 выхода.

Gnobitel
07.06.2016
17:31:17
Andrei
07.06.2016
17:31:21
В каком смысле «синхронизация»? Так или иначе у большинства микросхем есть стробирующий вход.

Andrey
07.06.2016
17:32:39
Вот только во что транслируется эта байда не совсем понял.

Andrei
07.06.2016
17:34:09
Вот за это не поясню. Я верилог не знаю.

Страница 943 из 9768