
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
Плохая задачка.
работает только на некоторых числах.

I S
07.06.2016
16:58:04

Kolyann
07.06.2016
16:58:37

I S
07.06.2016
16:58:43

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
я думал,что про найти минимальное

Andrei
07.06.2016
17:02:30

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

Andrei
07.06.2016
17:10:39
Можно конечно.
Но тогда будет ровно как я сказал — этот минимум будет работать только для некоторых чисел.

Andrey
07.06.2016
17:11:12

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 это скорее всего не решается.

Sharkus
07.06.2016
17:15:10

Andrey
07.06.2016
17:15:17

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

Andrei
07.06.2016
17:16:23
для uint32_t модуль не нужен.

Andrey
07.06.2016
17:16:33

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

Марк
07.06.2016
17:17:54

Andrey
07.06.2016
17:18:34

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

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

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

Andrey
07.06.2016
17:30:31

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
Вот за это не поясню. Я верилог не знаю.