emergency
05:39 24-04-2017 Математика и логика
Предположим у нас есть число от 0 до 99.
Задача - поменять местами его цифры.
Из 21 сделать 12. Из 85 - 58. И т.п.

Я понимаю, как это сделать последовательностью логических операций.
Мы представляем число X в форме = 10a+b. И тогда 10b+а это решение задачи

Но что, если у нас нет, а и b. Что если есть X, и нужно алгебраической формулой получить из него Y, который был бы "перевёрнутым" значением.
Я знаю, опять же как такое сделать последовательностью программных операций. Мы делим X на десять, потом отнимаем дробную часть, которую ставим в переменную а. Остаток - в переменную b. И потом уже работаем с ними. (Ну или там ещё тысяча разных алгоритмов, которыми можно добиться необходимого.)

Но это уже логика. Алгоритм.

А можно ли такое сделать математикой?
Есть ли такая формула, которая превратит X в его перевёрнутое значение?
Комментарии:
Гость
09:59 24-04-2017
int swapDigits (int n) { return (n%10) * 10 + (n/10); }
emergency
12:22 24-04-2017
это алгоритм, а не формула
Гость
13:20 24-04-2017
y = (x%10) * 10 + (x/10)
emergency
13:24 24-04-2017
что значит x%10?
Tienn
13:30 24-04-2017
emergency деление с остатком
emergency
13:32 24-04-2017
95%10 это сколько?
Tienn
13:37 24-04-2017
emergency 5
emergency
13:39 24-04-2017
первый раз слышу о такой математической операции
это точно не оператор из программирования, за которым стоит отдельный алгоритм?
Tienn
13:40 24-04-2017
emergency Ну я только в области программирования с этим сталкивался.
Но википедия говорит что операция "алгебраическая" :)

https://ru.wikipedia.org/wiki/%D0%9...%BA%D0%BE%D0%BC
emergency
13:44 24-04-2017
я просто не понимаю, как эта операция работает на практике
опять же - понимаю алгоритмически, если делать операции и проверки между операциями

а если проверок не делать - просто последовательность одинаковых операций над числами, которые дадут остаток
то я не знаю как оно работает
Alexvn
13:59 24-04-2017
деление с остатком:

x mod y = x - ⌊ x / y ⌋ * y
emergency
14:31 24-04-2017
мне теперь интересно, как сама эта функция деления с остатком работает.

как формулой получить остаток от деления
Alexvn
14:32 24-04-2017
emergency - я сообщением выше дал тебе именно эту формулу.
emergency
15:09 24-04-2017
а, такие вот скобки ⌊⌋ - они от обычных чем-то отличаются?
Alexvn
15:17 24-04-2017
это обозначение целой части числа.

https://ru.wikipedia.org/wiki/%D0%A...%81%D1%82%D1%8C
emergency
15:43 24-04-2017
Ок. Мы закапываемся всё глубже, но изначальный вопрос при этом по сути остаётся ровно таким же.

А как математически работает взятие целой части числа? Как получить целую часть формулой?
Alexvn
16:07 24-04-2017
emergency - у нас получается некоторый инсепшен :) я тебе могу написать, как получить целую часть числа формулой (собственно, эта формула есть в статье по ссылке, что я указал):

⌊ x ⌋ = max {n ∈ Z | n ≤ x}

но ты наверное спросишь, как получить максимум формулой, и так далее.
свести данную задачу к примитивам типа сложения и вычитания не получится.
emergency
16:45 24-04-2017
мне интересно, на каком этапе там математика даёт сбой, и приходится вводить некие новые математические действия, которые невозможно получить из имеющихся и поэтому нужно брать за аксиому
Alexvn
16:56 24-04-2017
emergency - математика здесь не дает никакого сбоя. не знаю, почему ты считаешь целочисленное деление или экстремум новыми математическими действиями. это такие же математические понятия, как и, не знаю, интеграл или функция.

мне кажется, ты пытаешься решить эту задачу в рамках элементарной алгебры. такого способа я не вижу.
emergency
17:03 24-04-2017
хм. ок. мои познания в высшей математике оставляют желать лучшего к сожалению