Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/86: Рейтинг темы: голосов - 86, средняя оценка - 4.52
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148

Исправить алгоритм расчета ЕИ и максимально оптимизировать с целью повышения быстродействия

02.11.2019, 15:45. Показов 17841. Ответов 58

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Помогите выполнить тестовое задание. Условия:

Запрос от Министерства энергетики Нской области:

Добрый день!

Нужно срочно решить проблему с пересчетом показателей!

Делали все по инструкции:
Заполнили обе таблицы перевода единиц измерения (см. вложения "Таблица конвертации ЕИ", "Таблица мультипликации ЕИ").
В таблицу значений внесли данные по совокупному конечному энергопотреблению природного газа с 2017 по 2021 годы в единице измерения Mtoe.
Запустили расчет.
Данные рассчитались некорректно – значения в Twh отличаются от Gwh на 2 порядка (см. вложение "Данные TFC"), а не на 3, как должно быть. При этом в таблице перевода цифры правильные – степень Gwh -9, степень Twh -12, разница -3. В таблице "Данные TFC" для наглядности оставил только исходные значения в Mtoe и значения в Gwh и Twh, рассчитанные некорректно. В значениях, рассчитанных в остальных единицах измерения, ошибок не нашел, поэтому убрал их из таблицы "Данные TFC".

Прошу срочно исправить алгоритм расчета (см. вложение "Алгоритм расчета ЕИ").

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

--
В.В. Васильев
Ведущий специалист отдела перспективного развития
Министерства энергетики Нской области
(000) 00-00-00


Дополнительные материалы:

Алгоритм расчета ЕИ

1 Начало расчета:
2 Получить P_indicators – параметр запуска расчета, массив записей таблицы T_indicators;
3 Получить P_resources – параметр запуска расчета, массив записей таблицы T_resources;
4 Получить P_years – параметра запуска расчета, массив записей таблицы T_years;
5 Для очередного показателя I из P_indicators:
5.1. Для очередного ресурса R из P_resources:
5.1.1. Для очередного года Y из P_years:
5.1.1.1. Получить M_values – массив записей T_values, каждая из которых удовлетворяет
условию [[Значение поля «Показатель» = I] и [Значение поля «Ресурс» = R] и [Значение
поля «Год» = Y]];
5.1.1.2. Получить M_calculated – массив записей T_multiplication, каждая из которых
удовлетворяет условию [[Значение поля «Базовая ЕИ» содержится в поле «Единица
измерения» какой-либо записи M_values] и [Значение поля «Расчетная ЕИ» не
содержится в поле «Единица измерения» записей M_values]];
5.1.1.3. Получить M_based – массив записей T_multiplication, каждая из которых
удовлетворяет условию [[Значение поля «Расчетная ЕИ» содержится в поле «Единица
измерения» какой-либо записи M_values] и [Значение поля «Базовая ЕИ» не содержится
в поле «Единица измерения» записей M_values]];
5.1.1.4. Получить M_result – массив записей T_convertation, каждая из которых
удовлетворяет условию [[Значение поля «Исходная ЕИ» содержится в поле «Единица
измерения» какой-либо записи M_values] и [Значение поля «Результирующая ЕИ» не
содержится в поле «Единица измерения» записей M_values]];
5.1.1.5. Если [[M_calculated пусто] и [M_based пусто] и [M_result пусто]], то перейти в 5.1.2,
иначе перейти в 5.1.1.5.1:
5.1.1.5.1. Если [M_calculated пусто], то перейти в 5.1.1.5.2, иначе перейти в 5.1.1.5.1.1:
5.1.1.5.1.1. Для каждой записи M_values, у которой значение поля «Единица
измерения» содержится в поле «Базовая ЕИ» записей M_calculated, рассчитать
значения в единицах измерения, которые содержатся в поле «Расчетная ЕИ»
соответствующих записей M_calculated по формуле: [Значение в расчетной ЕИ
= Значение в базовой ЕИ * 10 E];
5.1.1.5.1.2. Записать в T_values для I, R, Y все значения, рассчитанные в
расчетных единицах измерения, перейти в 5.1.1.5.2;
5.1.1.5.2. Если [M_based пусто], то перейти в 5.1.1.5.3, иначе перейти в 5.1.1.5.2.1:
5.1.1.5.2.1. Для каждой записи M_values, у которой значение поля «Единица
измерения» содержится в поле «Расчетная ЕИ» записей M_based, рассчитать
значения в единицах измерения, которые содержатся в поле «Базовая ЕИ»
соответствующих записей M_based по формуле: [Значение в базовой ЕИ =
Значение в расчетной ЕИ * 10 –E];
5.1.1.5.2.2. Записать в T_values для I, R, Y все значения, рассчитанные в базовых
единицах измерения, перейти в 5.1.1.5.3;
5.1.1.5.3. Если [M_result пусто], то перейти в 5.1.1.1, иначе перейти в 5.1.1.5.3.1:
5.1.1.5.3.1. Для каждой записи M_values, у которой значение поля «Единица
измерения» содержится в поле «Исходная ЕИ» записей M_result, рассчитать
значения в единицах измерения, которые содержатся в поле «Результирующая
ЕИ»
соответствующих
записей
M_result
результирующей ЕИ = Значение в исходной ЕИ * K];
5.1.1.5.3.2. Записать в T_values для I, R, Y все значения, рассчитанные в
результирующих единицах измерения, перейти в 5.1.1.1;
5.1.2. Если по всем Y из P_years расчет завершен, то перейти в 5.2, иначе перейти в 5.1.1;
5.2. Если по всем R из P_resources расчет завершен, то перейти в 6, иначе перейти в 5.1;
6 Если по всем I из P_indicators расчет завершен, то перейти в 7, иначе перейти в 5;
T_indicators – таблица показателей, содержит поле «Наименование».
T_resources – таблица ресурсов, содержит поле «Наименование».
T_years – таблица календарных лет, содержит поле «Наименование».
T_values – таблица значений, содержит поля: «Показатель», «Ресурс», «Год», «Единица измерения»,
T_multiplication – таблица мультипликации единиц измерения, содержит поля: «Наименование»,
«Базовая ЕИ», «Расчетная ЕИ», «Степень».
T_convertation – таблица конвертации единиц измерения, содержит поля: «Наименование»,
«Исходная ЕИ», «Результирующая ЕИ», «Коэффициент».
E – степень мультипликации, поле «Степень» в T_multiplication.
K – коэффициент конвертации, поле «Коэффициент» в T_convertation.


Данные TFC

Энергетический ресурс Единица измерения Совокупное конечное энергопотребление (Total final consumption)
2017 2018 2019 2020 2021
Природный газ
(Natural gas) Mtoe 148,67 149,33 150,00 150,67 151,33
Gwh 172 903,22 173 670,80 174 450,01 175 229,22 175 996,80
Twh 1 729,03 1 736,71 1 744,50 1 752,29 1 759,97

Таблица конвертации ЕИ

Наименование Исходная ЕИ Коэффициент Результирующая ЕИ
Mtce --> Mm3ng Mtce 751,4768963 Mm3ng
Gft3ng --> Twh Gft3ng 0,301277062 Twh
MMbtu --> Mj MMbtu 1055,060005 Mj
Bboe --> Qbtu Bboe 0,58000001 Qbtu
Gtoe --> Gtce Gtoe 1,4285714 Gtce
Gj --> Gwh Gj 0,000277778 Gwh
Ktoe --> Kboe Ktoe 6,8419054 Kboe
Gm3ng --> Gft3ng Gm3ng 35,958043 Gft3ng

Таблица мультипликации ЕИ

Наименование Расчетная ЕИ Степень Базовая ЕИ
Gft3ng <--> ft3ng Gft3ng -9 ft3ng
Gtce <--> tce Gtce -9 tce
Gtoe <--> toe Gtoe -9 toe
MMbtu <--> btu MMbtu -6 btu
Mj <--> j Mj -6 j
Kboe <--> boe Kboe -3 boe
Mtoe <--> toe Mtoe -6 toe
Twh <--> wh Twh -12 wh
Ktoe <--> toe Ktoe -3 toe
Gj <--> j Gj -9 j
Mboe <--> boe Mboe -6 boe
Mtce <--> tce Mtce -6 tce
Gm3ng <--> m3ng Gm3ng -9 m3ng
Bboe <--> boe Bboe -9 boe
Qbtu <--> btu Qbtu -15 btu
Mm3ng <--> m3ng Mm3ng -6 m3ng
Mft3ng <--> ft3ng Mft3ng -6 ft3ng
Gwh <--> wh Gwh -9 wh

Собственно, это тестовое задание при приеме на работу в компанию X, оно у них не меняется на протяжении 3 лет и подходит для любой вакансии практически. Поэтому решил выставить на всеобщее обозрение. Сразу скажу, что подобное задание я уже выполнял и, как ни странно, принят на работу не был. Поэтому решил узнать - в чем тут собственно подвох? Помогите пожалуйста решить данное задание.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2019, 15:45
Ответы с готовыми решениями:

Способы повышения быстродействия ключа
Какие есть способы повышения быстродействия?

Настройка ПК с целью повышения FPS
Я являюсь полу про-геймером. Процессор Intel® Core™ i5 CPU 650 @ 3.20GHz Видеокарта Saphire AMD Radeon R9 200 Series 2GB Оперативная...

Апгрейд компьютера, с целью повышения производительности в играх
Всем привет!) Подскажите, что улучшить в моем компьютере, чтоб шли игры, которые имеют системные требования, как AC:Unity, BF4 и...

58
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
05.11.2019, 01:54  [ТС]
Студворк — интернет-сервис помощи студентам
korvin_, ViktorFX, korvin_, если бы я знал, что нужно по данному тз, то не спрашивал бы. Но раз речь идет именно об алгоритме, то нужно его написать, протестить и потом подпоавить. Можно, конечно, и также ответить, но что-то мне подсказывает, что этого не достаточно, так как в первый раз такой вариант не сработал.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
05.11.2019, 02:05
Цитата Сообщение от Veseliy Hakker Посмотреть сообщение
если бы я знал, что нужно по данному тз, то не спрашивал бы. Но раз речь идет именно об алгоритме, то нужно его написать, протестить и потом подпоавить. Можно, конечно, и также ответить, но что-то мне подсказывает, что этого не достаточно, так как в первый раз такой вариант не сработал.
А мне что-то подсказывает, что таких работодателей нужно слать подальше.
0
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
05.11.2019, 02:08  [ТС]
korvin_, Ну, не знаю. Может быть и так. Только как работу искать, если я уже все конторы в регионе не по разу обошел и нигде не берут. Вроде не тупой и наработки есть, а все равно никак.
0
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
05.11.2019, 13:29
Veseliy Hakker, напишите код, или часть кода на java.
Покажите нам. И задавайте конкретно вопрос уже по коду.
А так получается одна демогогия: толи ТЗ неправильное, то ли работодатель неправильный, то ли не ту профессию выбрал.
Тут у вас есть шанс, даже если вы не устроитесь на эту конкретно работу, у вас будут наработки.
Вы их уже сможете показать, хотя бы на github или любом другом сервисе.
А так вы только оправдываетесь перед самим собой.
1
05.11.2019, 14:12

Не по теме:

Цитата Сообщение от vvm28 Посмотреть сообщение
только оправдываетесь перед самим собой
ну, не всегда жесткая правда - это путь к успеху)). пока он верит в свои силы (гипотетическая помощь не подорвет эту веру) он может многое освоить...

0
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
05.11.2019, 16:05  [ТС]
vvm28, Aviz__, а чего мне оправдываться. У меня есть наработки, есть код на гитхабе (правда еще не все выложил), а на счет работы - вы правы, не берут так не берут. Просто мне интересно, как я должен выполнить это тз? Написать код или же просто достаточно объяснить алгоритм работы и ошибку расписать. Задание не сложное. Правда потом выясняется, что это не то что нужно было. Список технологий на данную вакансию у меня имеется.

Вообще, если работодатель будет писать откровенно и честно кто именно ему нужен, то проблем будет меньше. Но...

Добавлено через 37 секунд
Ладно, пока разбираюсь с JDBC, все установил, можно писать код.
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
05.11.2019, 17:56
думаю, тебе нужно
Цитата Сообщение от Veseliy Hakker Посмотреть сообщение
Написать код
должны, потом, еще и по коду спросить кое что.
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.11.2019, 18:56
Veseliy Hakker, ты каждый чих тут будешь описывать? Заведи себе может бложек?
0
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
05.11.2019, 20:36  [ТС]
xoraxax, типа завел, а что?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.11.2019, 20:56
Лучший ответ Сообщение было отмечено vvm28 как решение

Решение

Вот там и протоколируй свои страдания
3
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
05.11.2019, 21:04
Veseliy Hakker, понимаешь, Бор, Хора, по мужски, прав. как Ландау говорил, лет 50 назад, "что ваш путь нахождения решения никому не интересен... главное конечное решение".
1
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
06.11.2019, 20:37  [ТС]
Aviz__, ты прав, поэтому я забил на всю эту херню. Сейчас продолжаю заниматься своим проектом по ИИ. Нужно закончить парсер, потом буду подрубать аналитику, потом нейросетку, потом голос. Короче, нахрена мне эта работа? С деньгами проблем нет, а чем себя занять я и так знаю )

Добавлено через 1 минуту
xoraxax, ляха, а я и не знал... Проблема в том, что за помощью я обращаюсь крайне редко, а посему не умею расписывать задачки.
0
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
07.11.2019, 12:20
Цитата Сообщение от Veseliy Hakker Посмотреть сообщение
С деньгами проблем нет, а чем себя занять я и так знаю )
Если с деньгами проблем нет, то не теряй время, а сколачивай команду на проект.
"С деньгами проблем нет" явление временное, главное не упускать время.
1
07.11.2019, 12:53

Не по теме:

Цитата Сообщение от vvm28 Посмотреть сообщение
сколачивай команду на проект
ога, как Буратино...))

0
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
07.11.2019, 13:53  [ТС]
vvm28, гоу в нейронки на питоне?
0
 Аватар для morii
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 64
08.11.2019, 18:01
Если я где-то не прав- сорян с ходу, но мне такое тз прислали на вакансию сис.админо!)) Че-то с чем-то у меня либо дезинформация, либо у них с серым веществом трабла. Впервые встречаю такое...с 2005 админом работаю, не видал таких эшо.
1
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
08.11.2019, 21:27  [ТС]
Цитата Сообщение от morii Посмотреть сообщение
Если я где-то не прав- сорян с ходу, но мне такое тз прислали на вакансию сис.админо!)) Че-то с чем-то у меня либо дезинформация, либо у них с серым веществом трабла. Впервые встречаю такое...с 2005 админом работаю, не видал таких эшо.
Я так понимаю, такие тз делаются для массовки. Есть определенный чел, которого хотят взять, но так как нужно создать видимость конкурентной борьбы, делают вот такое ТЗ ))) Ну, это так, личное мнение. Кстати, компания куда круче этой приняла у меня только резюме и можно собеседование проходить )
0
 Аватар для morii
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 64
08.11.2019, 23:14
Поздравляю и желаю удачи...
1
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
11.11.2019, 21:21
Цитата Сообщение от Veseliy Hakker Посмотреть сообщение
Есть определенный чел, которого хотят взять, но так как нужно создать видимость конкурентной борьбы, делают вот такое ТЗ
Это совсем не так, как вам видится. Такие компании обычно ищут людей с опытом в очень определенном направлении и с определенным складом ума. Они оценивают по многим параметрам. На юниорские - обычно это параметр скорость решения задач. На более высокие - оценивают качество и знание некоторого стека технологий. Тут во многом зависит от компании, от серьезности их намерений и от бюджета который заложен у них на те или иные вакансии.

Добавлено через 4 минуты
PS. Любые даже самые малые наработки пригодятся вам в будущем. Старайтесь их сохранять. Но есть один нюанс, показываете не всё.
1
 Аватар для Veseliy Hakker
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
11.11.2019, 22:28  [ТС]
vvm28, Крит, не сказать чтобы крутая, сидят на госконтрактах. Везет мне на таких в последнее время. НТЦ Станкоинформзащита еще одна подобная )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.11.2019, 22:28

Методы кодирования информации с целью повышения надежности передаваемой информации
Необходимо разработать приложение, с помощью которого можно закодировать информацию. Среда разработки -Visual studio. Язык программирования...

1 ГБайт ОЗУ + Win7 x32 - оптимизировать систему для увеличения быстродействия
Добрый вечер, уважаемые форумчане! У меня мало ОЗУ - 1 ГБ. Я провёл тонкую подстройку Mozilla Firefox в about:config и быстродействие её...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru