Как правильно назвать переменную, которая представляет значение 1 - n? - PullRequest
2 голосов
/ 11 октября 2008

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

Я часто видел:

float k         = someValue;
float oneMinusK = 1 - k;

... что кажется мне как описательным, так и бессмысленным.

Обратите внимание, что я не спрашиваю, как назвать переменную, а как это сделать в этом самом случае. Примеры и контексты, в которых вы их использовали, будут высоко оценены,

Спасибо.

Ответы [ 8 ]

14 голосов
/ 11 октября 2008

В вероятности 1-k - это вероятность того, что X не возникнет, учитывая, что k - это вероятность появления X.

Так

float will_win_lottery = 0.00000000001;
float will_not_win_lottery = 1 - will_win_lottery;
9 голосов
/ 11 октября 2008

Вы должны называть свои переменные в зависимости от того, что это означает с точки зрения домена, над которым вы работаете, а не по алгоритму, который вы использовали для его создания. Таким образом, если k представляет номер вашего дома, k-1 может представлять номер соседнего дома. Назовите его соответственно.

7 голосов
/ 11 октября 2008

Я бы назвал это дополнением .

2 голосов
/ 11 октября 2008

Я бы, наверное, рассчитал это, когда мне это нужно. Как вы думаете, сколько времени это сэкономит, чтобы сохранить его в переменной? Помните, что преждевременная оптимизация - корень всего зла.

1 голос
/ 20 октября 2008

Невозможно ответить на ваш вопрос, не зная, что означает «к». По иронии судьбы, причина, по которой это невозможно, заключается в плохом названии переменной «k», поэтому вам следует беспокоиться о ней. Если вы дадите «k» более описательное имя, хороший выбор именования для «k-1» должен быть естественным, как в примере «will_win_lottery» и «will_not_win_lottery».

0 голосов
/ 11 октября 2008

Ваше использование уже кажется достаточно описательным, просто продолжайте.

0 голосов
/ 11 октября 2008

Это должны быть константы?

Если вы делаете это исключительно по причинам разборчивости, почему бы не создать метод по предложению Дана.

float complement(float n) { return (1.0 - n); }
0 голосов
/ 11 октября 2008

Это действительно имеет значение? Используйте я; это не менее наглядно, чем к. Такие вещи должны быть задокументированы / прокомментированы, если вы не согласны с описанием кода.

...