juan_gandhi: (VP)
[personal profile] juan_gandhi
Вчера между делом помянул задачку - для int32 найти функцию f, чтобы f(f(x)) = -x

Один взялся. Сегодня за завтраком говорит мне: я понял, в чем дело. -x - не функция. Нет такой функции.

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

P.S. Куда я попал.

А вы говорите логика

Date: 2016-11-12 05:07 pm (UTC)
From: [identity profile] andybil.livejournal.com
Он же не видел.

Date: 2016-11-12 05:45 pm (UTC)
From: [identity profile] elexandra.livejournal.com
ферма им

Date: 2016-11-12 06:16 pm (UTC)

Date: 2016-11-12 06:03 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
А ответ у задачки какой?

Date: 2016-11-12 06:16 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Ответ хороший, но я не хотел бы так сразу раскрывать.

(no subject)

From: [identity profile] aafin.livejournal.com - Date: 2016-11-13 07:12 am (UTC) - Expand

(no subject)

From: [identity profile] math-mommy.livejournal.com - Date: 2016-11-13 02:15 pm (UTC) - Expand

Date: 2016-11-12 06:06 pm (UTC)
From: [identity profile] blackyblack.livejournal.com
f(x) -> if(x > 0) return (-x);

Date: 2016-11-12 06:16 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Это что за текст? Я не понял.

(no subject)

From: [identity profile] mudrizm.livejournal.com - Date: 2016-11-12 06:33 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-12 07:25 pm (UTC) - Expand

Date: 2016-11-12 07:00 pm (UTC)
From: [identity profile] sassa-nf.livejournal.com
ну и вот, подайте -1 на вход

(no subject)

From: [identity profile] blackyblack.livejournal.com - Date: 2016-11-12 07:04 pm (UTC) - Expand

Date: 2016-11-12 06:11 pm (UTC)
From: [identity profile] soonts.livejournal.com
Мне кажется он прав, -x правда не функция для int32.
Потому что INT_MIN влезает в int32, а -INT_MIN нет.

Если запретить числу быть INT_MIN, и -x становится функцией, и решения задачи появляются.

Date: 2016-11-12 06:17 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
1. нет
2. ну и какие же?

(no subject)

From: [identity profile] soonts.livejournal.com - Date: 2016-11-12 07:35 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2016-11-12 07:56 pm (UTC) - Expand

(no subject)

From: [identity profile] os80.livejournal.com - Date: 2016-11-13 04:55 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2016-11-14 03:30 am (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-14 08:07 am (UTC) - Expand

(no subject)

From: [identity profile] deni-ok.livejournal.com - Date: 2016-11-12 08:16 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-12 08:58 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-12 08:30 pm (UTC) - Expand

(no subject)

From: [identity profile] soonts.livejournal.com - Date: 2016-11-12 09:12 pm (UTC) - Expand

(no subject)

From: [identity profile] elexandra.livejournal.com - Date: 2016-11-12 09:21 pm (UTC) - Expand

(no subject)

From: [identity profile] soonts.livejournal.com - Date: 2016-11-12 09:49 pm (UTC) - Expand

(no subject)

From: [identity profile] rezkiy.livejournal.com - Date: 2016-11-12 09:32 pm (UTC) - Expand

Date: 2016-11-12 06:37 pm (UTC)
From: [identity profile] dvulis.livejournal.com
yawn http://gurmeet.net/puzzles/ffx-x/

или f(x)=i x, где i = sqrt(-1).
Edited Date: 2016-11-12 06:51 pm (UTC)

Date: 2016-11-12 06:54 pm (UTC)
From: [identity profile] elexandra.livejournal.com
ага, я эту ссылку тоже нагуглил

а про i не догадался, хоть и не int32

(no subject)

From: [identity profile] dvulis.livejournal.com - Date: 2016-11-12 07:07 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-12 07:26 pm (UTC) - Expand

(no subject)

From: [identity profile] dvulis.livejournal.com - Date: 2016-11-12 10:18 pm (UTC) - Expand

(no subject)

From: [identity profile] worm-ii.livejournal.com - Date: 2016-11-15 10:26 am (UTC) - Expand

Date: 2016-11-12 08:18 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
Бгг. Каждый год!

Date: 2016-11-12 08:30 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Ну, в этот раз ответы более необычные, чем в прошлый год.

Date: 2016-11-12 08:55 pm (UTC)
From: [identity profile] imfromjasenevo.livejournal.com
тут уже написали, что комплексные числа надо вводить
можно ли считать ответом, что-то типа f=i*x, где x=(а b), а i={{0 -1},{1 0}}, [а]=[b]=16bit
Edited Date: 2016-11-12 08:56 pm (UTC)

(no subject)

From: [identity profile] imfromjasenevo.livejournal.com - Date: 2016-11-12 09:37 pm (UTC) - Expand

(no subject)

From: [identity profile] mudrizm.livejournal.com - Date: 2016-11-13 09:01 am (UTC) - Expand

(no subject)

From: [identity profile] anatoly borodin - Date: 2016-11-14 03:52 pm (UTC) - Expand

Date: 2016-11-12 09:51 pm (UTC)
From: [identity profile] snsokolov.livejournal.com
def f(x):
return (2<<32) + (x if abs(x) <= (1<<32) else -x)

All tests passed:
self.assertEqual(f(f(0)), -0)
self.assertEqual(f(f(1)), -1)
self.assertEqual(f(f(-(1<<31))), (1<<31))
self.assertEqual(f(f((1<<31)-1)), -(1<<31)+1)

Date: 2016-11-12 10:00 pm (UTC)
From: [identity profile] dvulis.livejournal.com
а если в этом компьютере не two's complement, a one's complement?

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-12 10:17 pm (UTC) - Expand

(no subject)

From: [identity profile] snsokolov.livejournal.com - Date: 2016-11-12 10:33 pm (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-12 10:47 pm (UTC) - Expand

(no subject)

From: [identity profile] snsokolov.livejournal.com - Date: 2016-11-13 12:03 am (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 07:06 am (UTC) - Expand

Date: 2016-11-12 10:10 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com


если f(0)=f0!=0, то f(f0)=0 и f(f(f0))=f0!=-f0. противоречие. значит, f(0)=0.

если x!=0, то f(x)!=0 (иначе f(f(x))=0), и f(x)!=x (иначе f(f(x))=x).

положим f(x)=y, тогда f(y)=-x, f(-x)=-y, f(-y)=x.

итого, f разбивает все ненулевые целые числа на циклы из четырех. таких функций много. например, набор циклов {(1,2,-1,-2), (3,4,-3,-4), (5,6,-5,-6), ...} задает такую функцию на целых числах.

но для 32-битных чисел такой функции нет, потому что число таких чисел (без нуля) не делится на 4.

Date: 2016-11-12 10:15 pm (UTC)
From: [identity profile] elexandra.livejournal.com
спасибо, хуже пидараса

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

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-12 10:17 pm (UTC) - Expand

(no subject)

From: [identity profile] deni-ok.livejournal.com - Date: 2016-11-13 06:18 am (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 07:12 am (UTC) - Expand

(no subject)

From: [identity profile] deni-ok.livejournal.com - Date: 2016-11-13 08:09 am (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 04:06 pm (UTC) - Expand

Date: 2016-11-12 10:39 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Херня-война, лучше вот решите задачку для детей из Арнольда. Сегодня прилив достиг высшей точки в полдень, когда это произойдет в следующий раз (в этом же месте)?

(Мое пояснение: в такие подробности, как наличие континентов на Земле и Солнца в небе, вдаваться не надо; точность ответа по возможности в пределах 5 минут).

Date: 2016-11-12 11:58 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
Через месяц в это же время.

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 07:52 am (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2016-11-13 12:08 pm (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 12:28 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2016-11-13 03:59 pm (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 05:57 pm (UTC) - Expand

(no subject)

From: [identity profile] kondybas.livejournal.com - Date: 2016-11-13 02:03 am (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 06:40 am (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-13 08:20 am (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 12:41 pm (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-13 05:47 pm (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-13 05:54 pm (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-13 05:58 pm (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-14 06:38 am (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-14 06:44 am (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-14 08:18 am (UTC) - Expand

(no subject)

From: [identity profile] huzhepidarasa.livejournal.com - Date: 2016-11-14 12:30 pm (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-14 12:39 pm (UTC) - Expand
From: [identity profile] anonim-legion.livejournal.com
Шанкр вместе с гонореей
Тоже выдумал еврей
Только зачем? Вот непонятно...
Монады, монады, кругом одни монады!

Date: 2016-11-13 02:32 pm (UTC)
From: [identity profile] ermouth.livejournal.com
Придётся хранить в этих 32 битах вектор. f должна поворачивать вектор на четверть оборота, значит нам надо хотя бы 2 бита, чтобы хранить число поворотов на пипополам. Остаётся 30 бит на «длину» вектора, а один из 2 бит счётчика поворотов и будет знáком. Второй бит будет показывать, лежит текущее состояние на вещественной оси или проекция на эту ось равна нулю.

Date: 2016-11-13 04:52 pm (UTC)
From: [identity profile] rrr2.livejournal.com
Функция поворота на 90 градусов в комплексной плоскости

Date: 2016-11-13 07:58 pm (UTC)
From: [identity profile] monmarth.livejournal.com
Идеально нельзя, конечно.
Но в первом приближении как-то так:

int f(int x)
{
if(x == -1) return 1<<31;
if(x == 1<<31) return 1;
if(x == 1 || x == 0) return x-1;


if(x < 0)
return x&1 ? x+1 : 1-x ;
else
return x&1 ? x-1 : -1-x ;
}

Date: 2016-11-13 10:32 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Я чувствую, вам нужен кюей, чтобы опровергнуть, сами не можете?

(no subject)

From: [identity profile] monmarth.livejournal.com - Date: 2016-11-14 12:10 am (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-14 12:24 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-14 04:39 pm (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-14 04:42 pm (UTC) - Expand

Date: 2016-11-13 09:43 pm (UTC)
From: [identity profile] exceeder.livejournal.com
навскидку, не читая комментариев
-abs(x)
но может, это слишком просто и там есть ограничения на такое?
То есть, почему сомнения, это при чем тут int32? Ну есть одно число, которое не отминусуется. Так оно всегда есть.

(no subject)

From: [identity profile] exceeder.livejournal.com - Date: 2016-11-14 12:26 am (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-13 11:15 pm (UTC) - Expand

Ура!

From: [identity profile] andybil.livejournal.com - Date: 2016-11-14 05:43 am (UTC) - Expand

Date: 2016-11-14 12:21 am (UTC)
From: [identity profile] exceeder.livejournal.com
навскидку, не читая комментариев
-abs(x)
но может, это слишком просто и там есть ограничения на такое?
То есть, почему сомнения, это при чем тут int32? Ну есть одно число, которое не отминусуется. Так оно всегда есть.

Date: 2016-11-14 05:18 pm (UTC)
From: [identity profile] lev shubnikov (from livejournal.com)
Int8:

0 --> 0
1 --> 2 --> -1 --> -2 --> 1
3 --> 4 --> -3 --> -4 --> 3
...
125 --> 126 --> -125 --> -126 --> 125

127, -127, 80h explodes the Earth

Date: 2016-11-14 11:35 pm (UTC)
From: [identity profile] smirnfil.livejournal.com
Вопрос - Оно должно на всем int32 быть определено? Тогда вопрос чему у вас равен -(LONG_MIN)? В С# два контекста - в одном случае вылет. То есть такой функции действительно не будет, поскольку -х не определен на int32. В другом -(LONG_MIN) = LONG_MIN.

Но все равно такой функции не будет - будут две неподвижных точки (0 и LONG_MIN) если x = -x, то f(x) = x. а все остальное должно делится на четверки так как f(f(f(f(x)))) = x, а оно не делится.

Date: 2016-11-15 12:13 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
-(LONG_MIN) = LONG_MIN, наверно. У вас с этим проблемы?

Идея, что 0-x определен не на всех x, конечно, свежа.

А дальше да, ответ правильный. :)

(no subject)

From: [identity profile] smirnfil.livejournal.com - Date: 2016-11-15 12:25 am (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2016-11-15 07:25 am (UTC) - Expand

(no subject)

From: [identity profile] smirnfil.livejournal.com - Date: 2016-11-15 07:30 am (UTC) - Expand

Date: 2016-11-16 10:24 am (UTC)
From: [identity profile] vyakunin.livejournal.com
x + (1 << 30)

Date: 2016-11-17 05:15 pm (UTC)
From: [identity profile] monmarth.livejournal.com
если бы целые хранились в прямом (а не дополнительном) коде, это было бы не только красиво, но и верно. :)
(deleted comment)
(deleted comment)

Re:

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-17 06:53 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-17 06:53 pm (UTC) - Expand

(no subject)

From: [identity profile] zamotivator.livejournal.com - Date: 2016-11-17 06:53 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2016-11-17 07:25 pm (UTC) - Expand

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

July 2025

S M T W T F S
  12345
6789 1011 12
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 16th, 2025 01:12 am
Powered by Dreamwidth Studios