Определить объём памяти, необходимой для хранения паролей и сведений пользователей - C#

Узнай цену своей работы

Формулировка задачи:

Есть задача: "При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из a символов и содержащий только символы из b-символьного набора: [символы алфавита]. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено c байт на одного пользователя. Определите объём памяти (в байтах), необходимый для хранения сведений о d пользователях. В ответе нужно вывести только целое число – количество байт." Помогите, пожалуйста, её оформить
Решается она так: b символов нужно сравнить с ближайшей степенью числа 2 и найти её, т.е, если b≤2^n, то нужно найти n. Далее найти объём памяти для всех символов: n*a. Так как для записи используются байты, то нужно найти такое число m≥(n*a), остаток от которого при делении на 8 равен нулю. Потом (m+c) * d = f. Вывести f. помогите, пожалуйста

Решение задачи: «Определить объём памяти, необходимой для хранения паролей и сведений пользователей»

textual
Листинг программы
class Program
    {
        static void Main(string[] args)
        {
            int alphabet;
            int pass;
            int count;
            int adddata;
            Console.WriteLine("Введите количество символов:");
            alphabet = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество паролей:");
            pass = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество пользователей:");
            count = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество памяти для дополнительных данных:");
            adddata = int.Parse(Console.ReadLine());
            int volume = Passwords(alphabet, pass, count, adddata);
            Console.WriteLine("Объем памяти = " + volume);   
        }
        static int Passwords(int n_alphabet, int length_Password, int count_Password, int add_data)
        {
            int result = 0;
            int length_code, cod;
            length_code = 1;
            cod = 2;
            while ( cod < n_alphabet)
            {
                cod *= 2;
                length_code++;
            }
            cod = length_code * length_Password;    //длина пароля в битах
            int lenPassword = cod / 8;
            if (cod % 8 != 0) lenPassword++;        //длина пароля в байтах
            int All_length = (lenPassword + add_data)* count_Password; //память общая
            result = All_length;  
            return result;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.467 из 5
Похожие ответы