|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Доброе время суток всем. Есть таблица со временем: 01:00 08:43 12:00 15:15 .... Как выбрать время, при котором стрелки часов совпадают? В инете читала про стрелки часов. но как оформить в запрос никак не могу сообразить? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 06:38 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
JuliaYarr Доброе время суток всем. Есть таблица со временем: 01:00 08:43 12:00 15:15 .... Как выбрать время, при котором стрелки часов совпадают? В инете читала про стрелки часов. но как оформить в запрос никак не могу сообразить? Какой ожидается ответ на заданных данных ? - 15:15 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 06:54 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
вообщем, если "угадал" то так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
hm1201515 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 07:05 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
JuliaYarr, Это где такие задачки дают? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 11:27 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
JuliaYarr Как выбрать время, при котором стрелки часов совпадают? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 12:50 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
court, 15:15 - неверно... ибо часовая в это время прошла чуть больше, чем минутная. даже в 15:16 угол между ними будет меньше, чем в 15:15. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 12:52 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Akina court, 15:15 - неверно... ибо часовая в это время прошла чуть больше, чем минутная. даже в 15:16 угол между ними будет меньше, чем в 15:15. court а часовая стрелка - не движется в течении часа ? court вообщем, если "угадал" то так нуу, т.е. стрелки движутся "дискретно": часовая - раз в час, минутная - раз в минуту так-то, - "да", если всё "по настоящему" ), то можно и никаких проверок не делать, - 22324127 имхо, и с секундами точного соответствия не получится, - тут дай Б-г что бы точности представления типа Time / DateTime2 на это хватило ... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 13:47 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
court имхо, и с секундами точного соответствия не получится с точностью до 4-го знака после запятой, в "долях круга" ) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
shmdelta00.00000000000000000000.000000000000.0000000000000000000424790.98331018518518518510.983333333330.00002314814481481497210.01668981481481481480.016666666660.0000231481548148148417580.96662037037037037030.966666666660.000046296289629629714420.03337962962962962960.033333333330.000046296299629629621630.05006944444444444440.050000000000.0000694444444444444410370.94993055555555555550.950000000000.0000694444444444445403160.93324074074074074070.933333333330.000092592589259259328840.06675925925925925920.066666666660.0000925925992592592395950.91655092592592592590.916666666660.0001157407340740741... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 14:20 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
не правильно немного было, но суть та же Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 14:33 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Решение сводится к нормализации значения положения стрелок относительно циферблата и сравнению результата, поскольку каждый тип стрелки работает в своей системе измерений. Опять же, необходимо соглашение о точности нормализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2021, 14:50 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Всем добрый день. Задачки про стрелки часов встречаются на олимпиадах, ЕГЭ, в сборниках занимательных задачек. И вот в SQL тоже есть задачки с ними. Из того, что нашла в инете про стрелки: Решение. За сутки минутная стрелка делает 24 оборота, а часовая – 2 оборота. Значит, минутная стрелка обгоняет часовую 22 раза. В момент обгона они совпадают. При этом одна полночь учитывается, а вторая – нет. Моменты совпадения стрелок разбивают сутки на 22 равных отрезка. На каждом таком отрезке стрелки один раз образуют развернутый угол и два раза перпендикулярны, когда минутная стрека впереди и когда позади часовой на 90°. 00:00 1:05 2:11 3:16 4:22 5:27 6:33 7:38 8:44 9:49 10:55 12:00 13:05 14:11 15:16 16:22 17:27 18:33 19:38 20:44 21:49 22:55 1 сутки - это 86 400 секунд (24 х 60 х 60). Часовая и минутная стрелки совпадают через 1 час 5 минут 27,3 секунды = 39 27,3 секунды 86 400/39 27,3 = 21,9998 раз Ответ: в течение суток часовая и минутная стрелки совпадают 22 раза. Вот это решение я хотела использовать для запроса. Но смущало то, что в моих данных нет секунд, только час и минуты. Думала, думала, и вот как придумала. На основе статей: http://mathemlib.ru/books/item/f00/s00/z0000003/st029.shtml https://habr.com/ru/post/67066/ 1. с помощью формул получила время, когда стрелки часов совпадают или при смене стрелок местами показывают реальное время CONVERT(VARCHAR,DATEADD(SECOND,120*360*(12*n+m)/143,0),8) time1 CONVERT(VARCHAR,DATEADD(SECOND,120*360*(12*m+n)/143,0),8) time2 m и n принимают значения от 0 до 23 2. Выбрала значения, когда time1 =time2, т.е. время, когда стрелки часов пересекаются. 3. ну и в итоге выбрала значения из исходной таблицы CONVERT(VARCHAR(5),time,8) на вхождение в п.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 07:12 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Зачем посредством SQL решать такие задачи? Вот решите такую: есть 40 (хотябы) чисел и нужно найти все варианты сумма которых равна некоему числу Х. На Питоне это занимает около 10 строк кода и ~1 мин на обычном ПК. А на MS SQL это километр кода, который повесит даже хороший сервер )) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 10:05 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
JuliaYarr Как выбрать время, при котором стрелки часов совпадают? Легко. Вывести 12:00 и 0:00, если оно есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 10:35 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
JuliaYarr Часовая и минутная стрелки совпадают через 1 час 5 минут 27,3 секунды = 39 27,3 секунды Код: sql 1. 2. 3. 4. 5.
Ну что тут "программировать"? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 10:39 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
JuliaYarr, Без точного времени в миллисекундах они совпадают ровно 2 раза. Задачка не имеет смысла, а олимпиады из таких задачек - шоу дрессированных мартышек на потеху комиссии неудачников. Ничего этого не нужно. Решали бы лучше задачи типа a*, на основные структуры данных, ссылки/указатели, обход вложенных структур или деревьев. Нормализовали бы лучше таблицу из нф1 в конце концов, чтобы потом не тупить на форуме, а то половина выпускников элементарного потом не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 10:43 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
aleks222 Ну что тут "программировать"? Код: sql 1.
Именно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 10:44 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Решение может быть основано и на измерении скорости и пройденного расстояния. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 10:51 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
crutchmaster JuliaYarr, Без точного времени в миллисекундах они совпадают ровно 2 раза. Задачка не имеет смысла, а олимпиады из таких задачек - шоу дрессированных мартышек на потеху комиссии неудачников. Ничего этого не нужно. Решали бы лучше задачи типа a*, на основные структуры данных, ссылки/указатели, обход вложенных структур или деревьев. Нормализовали бы лучше таблицу из нф1 в конце концов, чтобы потом не тупить на форуме, а то половина выпускников элементарного потом не может. Можно поточнее - где-то до тысячных секунды: Код: sql 1. 2. 3. 4. 5.
Можно еще коррекцию на 12:00 поставить - будет точнее кремлевских курантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 10:51 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Oleg_SQL Зачем посредством SQL решать такие задачи? Вот решите такую: есть 40 (хотябы) чисел и нужно найти все варианты сумма которых равна некоему числу Х. На Питоне это занимает около 10 строк кода и ~1 мин на обычном ПК. А на MS SQL это километр кода, который повесит даже хороший сервер )) Пока что повесили меня :) Бррр. Ужас! Блин, как такое в голову-то приходит?! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 16:38 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Кесарь, Бухгалтерия просила найти платежки из которых могла сложиться сумма. Дело было года 2 назад. Подробно смысл их ошибки не помню. Платежек было "всего то" штук 40. Решил напролом - посредством MS SQL )) Всех возможных вариантов для проверки - 2 в 40 степени = 1 099 511 627 776. 1. Создать этот список 2. Проверить на равна ли сумма всех полей нужной Собственно вся проблема в 1-м пункте. Таких сумм нужно было найти несколько (из разного числа платежек) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 17:03 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Вообще сдаётся мне, что задача такая должна быть уже давно решена и найден алгоритм, сильно умными людьми, сокращающий поиск в нцать раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 17:21 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Кесарь Вообще сдаётся мне, что задача такая должна быть уже давно решена и найден алгоритм, сильно умными людьми, сокращающий поиск в нцать раз. На тот момент я не нашел ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 17:24 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Oleg_SQL Кесарь, Бухгалтерия просила найти платежки из которых могла сложиться сумма. Дело было года 2 назад. Подробно смысл их ошибки не помню. Платежек было "всего то" штук 40. Решил напролом - посредством MS SQL )) Всех возможных вариантов для проверки - 2 в 40 степени = 1 099 511 627 776. 1. Создать этот список 2. Проверить на равна ли сумма всех полей нужной Собственно вся проблема в 1-м пункте. Таких сумм нужно было найти несколько (из разного числа платежек) Честно говоря задача довольно тривиальная для SQL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
P/S Хотя нет, немного не доработал ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 17:40 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Oleg_SQL Кесарь Вообще сдаётся мне, что задача такая должна быть уже давно решена и найден алгоритм, сильно умными людьми, сокращающий поиск в нцать раз. На тот момент я не нашел С такими задачами так бывает. Надо помнить/знать либо общепринятое в математике название задачи, либо помнить название алгоритма. P.S. Вы плохо искали. Это "задача о рюкзаке" или "задача о сумме подмножеств": http://www.excelworld.ru/forum/3-5196-1 https://nauchforum.ru/studconf/tech/xx/6006 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 17:44 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Агрох, Поставьте в конце AND R2.val = 35+18 В списке это будет? У вас всего 840 вариантов... А их триллион Суммы были миллионные и с копейками )) И суммы могли повторяться ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 17:48 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Oleg_SQL У вас всего 840 вариантов... А их триллион Пофиксил. Но дальше улучшать лень, да и домой пора. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
Oleg_SQL Суммы были миллионные и с копейками )) Это уже тонкости, текстовое поле можно взять побольше или вообще XML генерить или иной способ придумать. Для простоты, взял целые числа и порядковый номер просто совпадает со значением. Я же генерил их, а не брал из реальной таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 18:04 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Агрох, запрос выполнился? за сколько дней/месяцев? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 23:32 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Oleg_SQL запрос выполнился? за сколько дней/месяцев? И что? Теперь всех так троллить будут? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2021, 11:03 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
crutchmaster Oleg_SQL запрос выполнился? за сколько дней/месяцев? И что? Теперь всех так троллить будут? Причем тут троллинг? Просто разница в скорости - несколько тысяч раз... Вышеуказанный запрос для 15 (1..15) значений и поиске суммы 20 занял ( затронуто строк: 57 ) Таблица "Worktable". Сканирований 1028465, логических операций чтения 57593849, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Время работы SQL Server: Время ЦП = 68906 мс, затраченное время = 71712 мс . То же самое Питон выдал Hi, PyCharm 2021-05-24 12:55:01.217436 <==================================================================================================================================================================================== {(2, 3, 6, 9), (2, 3, 7, 8), (1, 3, 6, 10), (1, 2, 4, 5, 8), (1, 3, 5, 11), (3, 5, 12), (1, 4, 7, 8), (8, 12), (4, 7, 9), (9, 11), (2, 5, 13), (4, 6, 10), (1, 3, 4, 12), (3, 4, 13), (1, 2, 8, 9), (2, 4, 14), (1, 8, 11), (1, 9, 10), (2, 3, 5, 10), (6, 14), (2, 3, 15), (7, 13), (2, 5, 6, 7), (1, 2, 7, 10), (1, 5, 6, 8), (2, 4, 6, 8), (2, 3, 4, 5, 6), (1, 7, 12), (4, 5, 11), (2, 3, 4, 11), (1, 4, 6, 9), (5, 15), (1, 4, 5, 10), (5, 7, 8), (3, 4, 6, 7), (2, 4, 5, 9), (3, 4, 5, 8), (1, 3, 7, 9), (3, 8, 9), (1, 2, 3, 5, 9), (1, 2, 3, 6, 8), (1, 2, 5, 12), (2, 8, 10), (1, 2, 6, 11), (5, 6, 9), (3, 7, 10), (1, 5, 14), (1, 6, 13), (1, 3, 4, 5, 7), (2, 7, 11), (1, 2, 3, 4, 10), (1, 2, 3, 14), (2, 6, 12), (1, 2, 4, 13), (1, 4, 15), (3, 6, 11), (1, 2, 4, 6, 7)} 57 ====================================================================================================================================================================================> 0:00:00.025956 2021-05-24 12:55:01.243392 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2021, 13:02 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Oleg_SQL Причем тут троллинг? Тут Прохоров что-то считал на MySQL почти месяц. На жс это же считалось около минуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2021, 13:11 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
JuliaYarr Доброе время суток всем. Есть таблица со временем: 01:00 08:43 12:00 15:15 .... Как выбрать время, при котором стрелки часов совпадают? В инете читала про стрелки часов. но как оформить в запрос никак не могу сообразить? Далее просто - совпадение стрелок -> HH/12 +поправка на минуты = MM/60 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2021, 13:32 |
|
Запрос про стрелки часов
|
|||
---|---|---|---|
#18+
Oleg_SQL, студии под рукой нет, кручу на онлайн виртуалке. 40 не тянет. Надо что то ещё придумать/оптимизировать. Для 15 вполне норм, выполняется сразу. Подкрученный код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2021, 14:19 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1684685]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 536ms |
0 / 0 |