LINUX.ORG.RU

Можно ли математически определить чётность числа?

 , , ,


0

3

Есть такая задачка. Вероятно, решения она не имеет.

Как из любого целого N сделать -1, если оно нечётное или 1, если оно чётное.
Можно использовать само N, константы (любые целочисленные или с плавающей запятой). Доступны сложение, вычитание, умножение, деление (настоящее).

★★★★★

Последнее исправление: CYB3R (всего исправлений: 2)
Ответ на: комментарий от dimon555

к сожалению n тебе не известно. чтобы его узнать надо поделить исходное число нацело. а ты его вычитаешь.

это же троль. требуй пруфы.

anonymous
()

всё не так уж и сложно:

(k/2 - (k-1)/2)*2 - 1

для чётного числа получишь 0, а для нечётного 1, к нужному виду я думаю приведёшь сам

mm3 ★★★
()
Последнее исправление: mm3 (всего исправлений: 1)
Ответ на: комментарий от dimon555

Я лишь говорю, как это интерпретирует парсер, под который я подстраиваюсь.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от aedeph_

Почему-то почувствовал иронию, плавно переходящую в сарказм.

anonymous
()
Ответ на: комментарий от CYB3R

Я-то думал тут просто фигнестрадание, а оказывается тут скорее всего всё ещё печальнее.

По сабжу: нельзя. И да, тег матан убери, у тебя же арифметика.

anonymous
()
Ответ на: комментарий от mm3

а ты подставь число. всегда будет 0.

anonymous
()
Ответ на: комментарий от mm3

а ты подставь число. всегда будет 0.

anonymous
()
Ответ на: комментарий от mm3

(k/2 - (k-1)/2)*2 - 1 = k - (k-1) - 1 = 0

И чему только в школе учат?..

anonymous
()
Ответ на: комментарий от aedeph_

Ну я бомж из ФРГ и знаю, что такое теория ф-и комплексной переменной. Дальше что?

Ты мне лучше скажи, как правильно кoмплексной, или комплексной? А ещё лучше, символ Крoнекера, или Кронекера? Правда последний не из тфкп, а тензорного анализа.

nanoolinux ★★★★
()

-1 в степени твоего целого N

а в чём проблема?

qulinxao ★★☆
()
Ответ на: комментарий от CYB3R

легко.

случай отрицательных интересен только мин ( для которого в целых его -min == min ) остальные просто меняем знак ибо чётность сохраняется

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

перед телом выставляем v в 1

тело цикла есть v*=2 и смотрим N/x <1? так мы узаЕм «потолок лог двоичного логорифма

теперь второй цикл (можеш тоже разрядностью полной вообщее) с тело цикла :

верху вычетая и сравнивая N-v c нулём мы можем узнавать его бит затем если результат больше нуля N=N-v если меньше то ничего.

v=/2 и так пока v >1 т.е цикл на 1 меньше чем число положительных разрядов

в результате в N либо 1 - это нечётно либо 0 это чётно

N=1-2*N

ответ готов . чё не так - по какому критерию не проходит?

qulinxao ★★☆
()
Ответ на: комментарий от CYB3R

для не отрицаьтельных

по чему не суммировать сравнение N- и для всех i кроме нуля вычитаем из N (N/2**i<1)*2**i

в результате в N либо 1 либо 0 дальше обычное 1-2*N

если простого сравнения нет то нужен abs или sign

qulinxao ★★☆
()

из описанных операций можно получить только рациональную функцию. периодических рациональных функций не бывает => задачу решить нельзя, никак.

anonymous
()

Каждая приведенная операция - обратима (кроме делений на 0). То-есть функция полученная - тоже и потому если искомая функция существует, то и обратная тоже. Ты сейчас нас попросил построить функцию, которая в зависимости от -1 или 1, построит было и ли это четное число или нет, и причем какое точно? Противоречие

Update Контрпример - f(x) = x/x = 1. Но идею можно попробовать развить. Можно ли доказать что или существует обратимая функция с какими-то ограничениями или f(x) - константа, если операции именно такие?

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 4)
Ответ на: комментарий от anonymous

+1, да, вроде правильно, концептуально как идея, но не строго. f(x)=1 - периодичная. Так вот у нас точно или константа, или рациональная?

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 3)
Ответ на: комментарий от ionivan

можно было бы написать рекурсивную функцию, но для этого нужны условные операторы, а именно проверка на равенство числа нулю.

Можно же каждый раз делить на число. Когда оно станет равным нулю, выкинется floating point exception и выполнение прекратится.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от vertexua

По Вашему x^2 не существует? Тоже неоднозначность при обращении;-)

AIv ★★★★★
()

Кстати, если удастся найти функцию g(x), определяющую x больше 0 или нет, то задача тоже решена наверное...

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)

Ничего, кроме полинома Лагранжа, тут сделать не получится. Любые другие решения будут сводится к нему. Вроде даже теорема была, но я ее забыл;-)

Разложение косинуса в ряд ИМНО хуже - точность ниже при том же числе членов.

AIv ★★★★★
()
Ответ на: комментарий от vertexua

Так вот у нас точно или константа, или рациональная?

да. замыкание относительно арифметических операций - определение рациональной функции.

anonymous
()
Ответ на: комментарий от mix_mix

Почему нет?

А потому-что в разных вузах по разному говорят. Московской школы действительно говорят «Кронекера», а харковской - «Кронекера». У меня только питерских преподов не было, не знаю как там. А на счёт «комплексной» математики ставят ударение на е (для ЧСВ видимо :), но с лингвистической т.з. правильно и так, и так.

nanoolinux ★★★★
()
Ответ на: комментарий от anonymous

из описанных операций можно получить только рациональную функцию. периодических рациональных функций не бывает => задачу решить нельзя, никак.

Ну вот 100 раз уже анон правильный разрушительный довод привёл. Чо вы тут обсуждать ещё пытаетесь?

anonymous
()

По условию решением может быть только полином с целыми коэффициентами:

a_n * x^n + .... a_m * x^m, (упорядоченный n > m)

Тогда в случае a_n > 0 — функция бесконечно возрастает на бесконечности, а в случае a_n — бесконечно убывает.

Полином не может быть ограниченным на области действительных чисел.

ttnl ★★★★★
()
Последнее исправление: ttnl (всего исправлений: 1)
Ответ на: комментарий от CYB3R

а точность целых бесконечная?

если мощьность всё таки ограничена можно сыграть на факте ассиметрии знаковых целых ( т.е сущестовании двух целых для которых -a==a)

qulinxao ★★☆
()
Ответ на: комментарий от CYB3R

Задачу решить невозможно, сколько тебе еще на это раз указать? Математика - штука точная. Если невозможно, то невозможно.

anonymous
()
Ответ на: комментарий от anonymous

Задачу решить невозможно, сколько тебе еще на это раз указать?

Я это ранше тебя написал. Ещё в ОП-посте.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

Cos(N * pi) если косинуса не допили его. А вообще посыл говеный.

anonymous
()
Ответ на: комментарий от nanoolinux

А потому-что в разных вузах по разному говорят.

Ну, наверное, надо не на разные вузы опираться, а на практикующих (хоть когда-то) математиков, активно крутящихся в этой среде. В этом смысле, опять же уж кому-кому, а НМУшникам доверять в таком случае самое оно нужно.

но с лингвистической т.з. правильно и так, и так.

Компле́ксной это профессионализм, почти что жаргон, пускай и повсеместно используемый, как и какая-нибудь симметри́я. Оно вообще не ахти как вписывается в рамки толковых словарей.

mix_mix ★★★★★
()
Ответ на: комментарий от mix_mix

а на практикующих

НМУшникам доверять в таком случае самое оно

Ты так говоришь, как-будто кроме НМУшников никто больше математикой активно не занимается.

nanoolinux ★★★★
()
13 апреля 2015 г.

И прочитав тред, вангуюю, что не имеет.

Так как уже было сказано не бывает периодически рациональных функций.

Без возведения в степень не обойтись.

Twissel ★★★★★
()
Ответ на: комментарий от CYB3R

Нет я переоткрыл для себя в уме закон Архимеда.

Всего лишь моя «Эврика!»

Twissel ★★★★★
()
Последнее исправление: Twissel (всего исправлений: 1)

Доступны сложение, вычитание, умножение, деление (настоящее).

а деления с остатком нет? если есть, то (x%2)*-2+1

если нет, придётся делать с помощью вычитаний степеней двойки, так мы переведём число в двоичную систему, и затем сможем узнать младший бит. Это и есть остаток от деления на два. Можно вычитать степени десяти, пока не будет x<10.

emulek
()
Ответ на: комментарий от CYB3R

но это крайне ущербный язык

что за ЯП? Циклы есть даже в brainfuck.

emulek
()
Ответ на: комментарий от CYB3R

Костыль.

а чего ты хотел с таким дебильным условием?

emulek
()
Ответ на: комментарий от quowah

А когда вещественные числа научились различать по четности/нечетности.

man антье

emulek
()
Ответ на: комментарий от anonymous

Оперировать log(-1) и не знать как расшифровывается тфкп что-то новенькое

у него вещественные числа.

emulek
()
Ответ на: комментарий от CYB3R

Я не знаю, как его назвать, потому назвал «делением без остатка»

это у тебя деление на ноль. Если число N по условию целое, то и деление должно быть целочисленным. Или это не просто деление, а перевод дроби в дробь. Масло масленое: 12345÷54321→12345/54321. Считай, что у тебя нет никакого деления. А если циклов/условий нет, то ответ — никак. Всё.

emulek
()
Ответ на: комментарий от CYB3R

Язык самопальный наколеночный.

вот проблема-то: ввести пятую операцию, деление с остатком.

emulek
()
Ответ на: комментарий от CYB3R

Я могу, конечно, написать патч, добавляющий возведение в степень. Но формат уже описан. Совместимость поломается.

с какого перепугу?! Посмотри на C++, там до сих пор совместимость с сишкой есть. А тебе только одну операцию _добавить_.

emulek
()
Ответ на: комментарий от anonymous

Знаешь что такое некропостинг?

да.

Посри в другом месте, тут уже насрано.

начни с себя.

emulek
()

По первому биту..... маска 1 и операция «И». Если результат 1, то нечетное, если 0, то четное. Дерзай.4

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.