|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.11.2017, 23:31 | #1 |
Регистрация: 31.10.2017
Сообщений: 4
|
Как ускорить работу праграммы
Код:
|
14.11.2017, 00:30 | #2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Цикл с индексом BidInteger - это жестоко..
Какая вообще задача? |
25.11.2017, 16:04 | #3 | ||
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
Это больше похоже на готовую задачу)
(Думаю какая нибудь лабораторная, направленная на проверку понимания языка и умения читать код) Если проанализировать код (все равно заниматься чем то полезным не охота), то видны два решения: 1) для программиста 2) для математика Суть первого, сводится к элементарным шагам: 1) Предусмотреть проверку интервалов! L <= R + 1 (иначе зацикливание) 2) замена new BigInteger("1") на BigInteger.ONE и new BigInteger("0") на BigInteger.ZERO 3) вынести из цикла pr = a.multiply(a); 4) вынести из цикла if(pr.subtract... . А сам цикл поместить в этот if, т.к. все вычисления только в нем 5) отдельной переменной вынести r.add(new BigInteger("1") 6) заменить equals на compareTo 7) убрать проверки j.compareTo(l)==-1 && j.compareTo(r)==1 8) а добавив немного математики: 8.1) заменить вынесенный if(pr.subtract...:. Данные выражение можно представить в сокращенном варианте: pr - n * pr / n == n - 1, сократив ненужное получим n == BigInteger.ONE Использование оператора == допустимо, т.к. ввод данных через scan.nextBigInteger() проходит проверку на наличие в кэше. 8.2) убрать переменную pr Второй подход. Данному коду можно дать физическое описание модели: Цитата:
Цитата:
Код:
|
||
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как ускорить работу приложения? | rownong | C# (си шарп) | 9 | 11.08.2017 10:03 |
Как ускорить работу exel | Fedis1 | Microsoft Office Excel | 2 | 17.04.2014 19:01 |
Как ускорить работу этого макроса? | Neo007 | Microsoft Office Excel | 1 | 22.06.2009 18:14 |
Как ускорить работу программы | SibBear | Общие вопросы Delphi | 7 | 27.03.2009 14:40 |
Как ускорить работу с сетевой БД | Ramires | БД в Delphi | 3 | 21.08.2008 12:16 |