2014-02-10 3 views
-7

У меня есть два вопроса:Какова длина имен переменных Min и Max от миллиона имен переменных в C++?

  1. Если мы хотим объявить один миллион имен переменных все имеющие одинаковую длину, то, что должно быть наименьшая длина можно использовать?

  2. Если мы хотим объявить миллион имен переменных любой допустимой длины, то каков максимальный размер требуемого имени переменной?

+3

1 млн. Переменных? Возможно, вы захотите пересмотреть свой дизайн. – Maroun

+0

По длине вы имеете в виду длину имени переменной? – MrKWatkins

+0

Если все переменные находятся в отдельных областях, все они могут быть названы 'x', поэтому минимальная требуемая длина будет равна 1. – user2079303

ответ

1

Первый символ в идентификаторе должен быть a-z, A-Z, или подчеркнуть, для 53 возможностей. Последующие символы могут быть цифрами 0-9 тоже, для 63 возможностей. Так n символы дают 53 * (63 ** (п-1)) юридические идентификаторы:

Length Names 
1  53 
2  3339 
3  210357 // much less than 1000000 
4  13252491 // much more than 1000000 

Некоторые из них зарезервированные слова (int, return и т.д.), которые мы не разрешается использовать. Другие начинаются с подчеркивания, которое стандарт C++ хмурится. Но эти небольшие соображения не меняют ответа, а это 4 (на оба вопроса).

+1

Существует много не-буквенно-цифровых символов, которые также действительны в именах переменных - например, unicode. – benjymous

+0

В дополнение к тем, которые начинаются с подчеркивания, также сохраняются идентификаторы, содержащие вспомогательные символы подчеркивания. – user2079303

1

Если я правильно вас понял, то C++ имеет специальный шаблон класса зЬй :: numeric_limits, что позволяет получить максимальные и минимальные значения для любого арифметического типа. Для этого вам необходимо включить заголовочные <limits>

Для примера, чтобы получить максимальные и минимальные значения для типа INT можно написать

#include <iostream> 
#include <limits> 

int main() 
{ 
    std::cout << "The maximum value of int is " << std::numeric_limits<int>::max() << std::endl; 
    std::cout << "The minimum value of int is " << std::numeric_limits<int>::min() << std::endl; 
} 

Если вы спрашиваете о минимальной длины для всех один миллион идентификаторов, имеющих той же длины, то вы должны вычислить количество перестановок, так что n! будет составлять не менее одного миллиона

+0

Он спрашивает о максимальной длине имени, а не значениях. – Ari

+0

@ Ари Трудно понять, что он задает. :) –

1

У вас есть как минимум 53 символа, которые могут быть использованы как первый символ имени переменной ('a' - 'z', 'A' - 'Z' и '_'). Затем вы также можете использовать цифры, поэтому у вас есть 63 возможных символа. 53*63*63*63 > 1 000 000, поэтому вам не нужны имена длиной более 4 символов.

Как долго имя переменной может зависеть только от компилятора.

1

Это не вопрос программирования, а математический вопрос. Чтобы назвать переменную, мы должны использовать буквы a-z, цифры 0-9 и несколько специальных символов (-, _). Таким образом, мы можем использовать appr. 39 разных персонажей. Это наш алфавит. Таким образом, чтобы сохранить 1000000 имена мы должны использовать имена с минимальной длиной:

журнала (base39) (1000000) = ~ 3,8

Так назвать миллион переменных (чтобы получить 1000000 уникальные имена), вы должны использовать в не менее 4 символов. (Я знаю о недопустимых именах «023abc», но если мы их исключим, результат не будет сильно изменяться).

Ответ: 4 символа. Это минимальное количество символов. Максимальная длина имени ограничена вашим компилятором.

 Смежные вопросы

  • Нет связанных вопросов^_^