Есть ответ 👍

Поместить в хеш таблицу 7 книг методом средних квадратов (по
названию книги). быть готовым объяснить принцип работы метода.

258
458
Посмотреть ответы 2

Ответы на вопрос:


ответ:

генераторов случайных чисел уходит корнями к одному из самых известных имен в теории вычислительных машин - джону фон нейману (john von neumann). в 1946 году он предложил следующую схему генерации последовательностей случайных чисел: возьмите n-значное число, возведите его в квадрат и из результата, выраженного в виде 2n-значного числа (при необходимости дополненного слева до 2n-значного), возьмите средние n цифр. это и будет следующее число в последовательности. так, например, если n равно 4, в качестве начального числа можно взять 1234. следующими числами в последовательности будут 5227, 3215, 3362, 3030, 1809 и т.д. описанный метод известен под названием метода средних квадратов (middle-square method).

листинг 6.1. метод средних квадратов в действии

var

midsqseed : integer;

function getmidsquarenumber : integer;

var

seed : longint;

begin

seed : = longint(midsqseed) * midsqseed;

midsqseed : = (seed div 100) mod 1;

result : = midsqseed;

end;

к сожалению, с алгоритмом связано несколько больших проблем, которые исключают его применение в практических целях. вернемся к нашему примеру с четырехзначными случайными числами. предположим, что в последовательности нам встретилось число меньше 10. при вычислении квадрата будет получено число меньше 100. это, в свою очередь, означает, что следующим числом в последовательности будет 0 (поскольку мы возьмем четыре средние цифры из числа хх). это число также меньше 10, следовательно, все последующие числа в последовательности будут равны 0. вряд ли кто-то может сказать, что такая последовательность будет случайной! (если в качестве начального взять число 1234, то до попадания в 0 последовательность будет содержать 55 чисел.) кроме того, если начать, например, с числа 4100, последовательность будет состоять из 8100, 6100, 2100, 4100 и так до бесконечности. существуют и другие патологические последовательности, на которые легко натолкнуться и трудно избежать.

метод средних квадратов позволяет легко генерировать случайные числа на основе 16-битного целого числа. возведение 16-битного числа в квадрат дает 32-битное число. затем для вычисления средних 16-бит нужно всего лишь сдвинуть полученный результат на 8 бит вправо и выполнить операцию and с числом $. тем не менее, даже в этом случае алгоритм средних квадратов будет давать бесполезные результаты. после 50-60 случайных чисел алгоритм приводит к генерации нулей или попадает в цикл. то же самое происходит и для 32-битных чисел. в общем случае, несмотря простоту, применение метода средних квадратов вследствие его недостатков предельно ограничено.

объяснение:

kaiv
4,4(16 оценок)

#include < iostream> #include < vector> #include < cstdlib> using namespace std; int main() { int count; cout < < "введите размер массива: "; cin > > count; vector< int> v(count); srand(time(0)); for (int i=0; i< count; i++) { v[i]=rand()%100; cout < < v[i] < < " "; } cout < < endl; int c=0; int n; cout < < "введите максимальный элемент: "; cin > > n; for (int i=0; i< v.size(); i++) if (v[i]> n) { v[i]=n; c++; } cout < < "было произведено " < < c < < " замен" < < endl; for (int i=0; i< v.size(); i++) cout < < v[i] < < " "; cout < < endl; return 0; }

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

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

Подпишись на наш телеграмм канал

GTP TOP NEWS