8.14.10
27.06.2022
JS: 2.15.10
CSS: 4.9.15
jQuery: 3.6.0
DataForLocalStorage: 2022-08-09 09:46:01-standard
Программирование Компьютеры Операционные системы Мобильные телефоны
Создание программ на языках C и C++.
неизвестный
|
= общий =
22.02.2009, 11:23
Пожалуйста, помогите с 1 - ой задачей...
Может решении задачи поможет, я не разобрал... Решение: Длинный корень Для начала найдем количество цифр в ответе. Покажем, что квадрат K-значного числа имеет либо 2*K-1, либо 2*K цифр. Действительно, квадрат наименьшего K-значного числа, т.е. числа 10K-1, равен 102K-2, т.е. имеет 2*K-1 цифру; квадрат наибольшего K-значного числа, т.е. числа 10K-1, равен 102K-2*10K+1, т.е. имеет 2*K цифр. Поскольку функция y=x2 монотонно возрастает для всех x>0(т.е. для любых x1,x2 > 0, таких что x1 < x2 выполнено x12 < x22), квадрат любого K-значного числа будет иметь либо 2*K-1, либо 2*K цифр. Следовательно, если число A из входного файла имеет N цифр, то корень из него будет иметь ровно (N+1) div 2 цифр. Теперь, когда мы знаем количество цифр в числе, будем последовательно подбирать его цифры, начиная со старших. Пусть K старших цифр уже подобраны. Поставим на K+1 место самую большую цифру - 9, и будем уменьшать ее до тех пор, пока квадрат полученного таким образом числа (считая, что все цифры ответа, начиная с K+2 и до самой младшей равны 0) не станет меньше либо равен числу A из входного файла. Таким образом, мы подобрали K+1 цифру нашего числа. Продолжая этот процесс, получим ответ на поставленную задачу. В изложенном решении используется операция умножения "длинных" чисел. Благодаря алгоритму умножения "в столбик" эта задача сводится к многократному умножению "длинных" чисел на "короткие" и сложению "длинных" чисел. Заметим, что эта операция легко выполняется в том случае, если одно из чисел является степенью 10, умноженной на "короткое" число. Тогда достаточно умножить "длинное" число на это короткое, а затем сдвинуть результат на нужное число позиций, что равносильно умножению числа на степень 10. Пусть aK - число, полученное на K-м шаге нашего приближения, b - очередная цифра, умноженная на 10 в соответствующей степени. Тогда aK+12=(aK+b)2=aK2+2aKb+b2. В стоящей справа сумме все слагаемые, кроме первого, представляют собой частный случай перемножения "длинных" чисел, изложенный выше. А первое слагаемое уже было вычисленно на предыдущем шаге алгоритма. |
неизвестный
|
= общий =
22.02.2009, 11:28
И помогите решить пожалуйста задачу по комбинаторике:
Игра с монеткой Петя играет в интересную игру. Для этой игры необходима монетка. Петя подбрасывает ее n раз и считает, сколько раз выпадает «решка». Если решка выпадает хотя бы m раз, то Петя считает, что он выиграл игру. Однажды Петя задумался, какова вероятность того, что он выиграет игру. Для этого он хочет найти количество последовательностей результатов подбрасывания монетки, содержащих ровно n подбрасываний, при которых «решка» выпала хотя бы m раз. Помогите Пете — найдите это число, считая, что при каждом броске монетка может выпасть либо «орлом», либо «решкой». Входные данные Входной файл INPUT.TXT содержит два целых числа: n и m (1 < n <= 20, 0 <= m <= n). Выходные данные В выходной файл OUTPUT.TXT выведите ответ на задачу. примеры: 1. input.txt: 2 0 output.txt: 4 2. input.txt: 3 2 output.txt: 4 СПАСИБО!!! |
Лысков Игорь ВитальевичСоветник ID: 7438 |
= общий =
23.02.2009, 15:25
Haji Kemal Erimez: Вам не кажется, что слишком много программ хотите в одном вопросе? =====
"Если вы заметили, что вы на стороне большинства, — это верный признак того, что пора меняться." Марк Твен |