@kayyo

Как перевести этот блок if в математическую функцию?

static int a;

static int f(int t) {
    if (t < 10) return a = 30;
    return a = 50; // else if(t >= 10)
}
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 3
LaRN
@LaRN
Senior Developer
Можно так попробовать например:
F(X) = 30+(1-X)*20, где X - функция от t.
X(t) = sign(int(t/10)), если t меньше 10, то X всегда 0, если больше, то всегда 1.
Ну и F(0)=30, а F(1)=50.
Но есть нюанс, я не знаю разрешены ли отрицательные числа, этот вариант только для положительных t.
Ответ написан
Комментировать
xez
@xez Куратор тега Java
TL Junior Roo
static int f(int t) {
        return  (t < 10) ?  30 : 50;
    }
Ответ написан
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
В математике есть разные способы задания функций.
Можно задать таблично. Например явно перечислить

x   |  y
..  | ...
8   | 30
9   | 30
10  | 50
11  | 50
...

Это используется в криптографии для внутренних замен внутри раунда в шифрах.

Можно описать функцию как набор булевых функций и минимизировать их по Карно или Квайну
для достижения какой-то минимальной формы. Это - тоже вполне себе метод.

x1,x2.....x32   |  y1...y32
----------------|------------
 00 1010        | 01 1110
  .....         | 11 0010
                | 11 0010


Все эти способы - правильные. И разработчик выбирает тот который удобнее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы