?

Log in

No account? Create an account

Previous Entry | Next Entry

Quiz

a = ((((a/(a-(a&(a-1)))+1)/((a/(a-(a&(a-1)))+1)-((a/(a-(a&(a-1)))+1)&(a/(a-(a&(a-1)))))))*(a-(a&(a-1)))*2+1)*(((a/(a-(a&(a-1)))+1)-((a/(a-(a&(a-1)))+1)&(a/(a-(a&(a-1))))))/2))-1;

Внимание, вопрос: что делает эта строчка кода?

P.S. Нет, она реально делает что-то осмысленное и весьма полезное. :)

Comments

( 19 comments — Leave a comment )
xcept_dot_ion
Oct. 7th, 2010 11:23 pm (UTC)
эта строчка кода присваивает переменной a значение ((((a/(a-(a&(a-1)))+1)/((a/(a-(a&(a-1)))+1)-((a/(a-(a&(a-1)))+1)&(a/(a-(a&(a-1)))))))*(a-(a&(a-1)))*2+1)*(((a/(a-(a&(a-1)))+1)-((a/(a-(a&(a-1)))+1)&(a/(a-(a&(a-1))))))/2))-1.
eduardische
Oct. 7th, 2010 11:25 pm (UTC)
Спасибо, так я и сам умею. ОК, какой смчсл этого присваивания?
xcept_dot_ion
Oct. 7th, 2010 11:40 pm (UTC)
ну ещё к тому же это решение задачи "вычислить значение ((((a/(a-(a&(a-1)))+1)/((a/(a-(a&(a-1)))+1)-((a/(a-(a&(a-1)))+1)&(a/(a-(a&(a-1)))))))*(a-(a&(a-1)))*2+1)*(((a/(a-(a&(a-1)))+1)-((a/(a-(a&(a-1)))+1)&(a/(a-(a&(a-1))))))/2))-1" со сложностью O(1)
xcept_dot_ion
Oct. 7th, 2010 11:29 pm (UTC)
а серьёзно - это, судя по всему, какая-то функция, вывод которой уникален для её параметра, т.е. мы не сможем получить тот же результат, скормив ей другой параметр.
eduardische
Oct. 7th, 2010 11:38 pm (UTC)
Верно. Ты на правильном пути. Наверное. Возможно. Не исключено.
xcept_dot_ion
Oct. 7th, 2010 11:44 pm (UTC)
ну и ещё вывод функции всегда больше ввода.

надо сделать небольшой перерыв на поспать.
astiob
Oct. 8th, 2010 06:43 pm (UTC)
А называются такие функции инъективными, а это их свойство — инъективностью.
astiob
Oct. 8th, 2010 06:46 pm (UTC)
А ещё такую функцию можно назвать просто инъекцией.
xcept_dot_ion
Oct. 8th, 2010 11:39 pm (UTC)
спасибо, обновлю дефиницию
goodsoft
Oct. 7th, 2010 11:45 pm (UTC)
оно как-то забавно поворачивает последние биты.
полезного не особо вижу

да, оно берёт последнюю группу единиц.
крайнюю левую сдвигает на бит влево, остальные - до упора вправо

Edited at 2010-10-07 11:48 pm (UTC)
eduardische
Oct. 7th, 2010 11:48 pm (UTC)
Ну, можно сказать что поворачивает. Но очень даже полезно)
eduardische
Oct. 7th, 2010 11:49 pm (UTC)
Всё, добей! :D
goodsoft
Oct. 7th, 2010 11:50 pm (UTC)
окей, оно берёт эту группу единиц и тупо прибавляет её к числу
где польза?


спиздел

Edited at 2010-10-07 11:53 pm (UTC)
eduardische
Oct. 7th, 2010 11:54 pm (UTC)
"
да, оно берёт последнюю группу единиц.
крайнюю левую сдвигает на бит влево, остальные - до упора вправо
"

А теперь вспоминай комбинаторику и найдёшь пользу :)
goodsoft
Oct. 7th, 2010 11:55 pm (UTC)
я её нихера не помню и сдаюсь
xcept_dot_ion
Oct. 8th, 2010 08:27 am (UTC)
это функция Берилли!!!111
astiob
Oct. 8th, 2010 06:50 pm (UTC)
Принимая незачёркнутый Пашин пост за правду (потому что мне лень проверять, а разбираться собственно в коде ещё ленивее), очевидно, что, если переменная a является отображением множества с фиксированным количеством элементов в виде битмаска, эта строчка создаёт следующее такое множество в лексикографическом порядке отображения.
astiob
Oct. 8th, 2010 06:51 pm (UTC)
Что есть весьма круто. Надо эту формулу куда-нибудь записать.
astiob
Oct. 8th, 2010 06:58 pm (UTC)
Плюс-минус очевидность в зависимости от текущего состояния читателя.
( 19 comments — Leave a comment )

Latest Month

August 2011
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031   
Powered by LiveJournal.com
Designed by Tiffany Chow