![]() |
|
|
| ||
Злопчинский 27.01.21 - 14:24 | есть множество из нескольких кортежей
(23,24,25,26),(27,28,29),(30,31,32,33),(34,35,36,37),(38,39,40),(41,42,43,44) то есть по количеству чисел в кортеже 4-3-4-4-3-4 итд. . можно ли придумать формулу с простыми арифметическими действиями, которая бы для любого числа (начиная с 23) возвращала первое значение соответсвующего кортежа..? то есть в примере - какое бы число из ряда мы не взяли - должно получиться одно из 23,27,30,34,38,41 итд... ? | ||
Злопчинский 1 - 27.01.21 - 14:28 | Простые арифметические действия - плюс-минус-умножить-делить-цел-окр-делитьнацело%... | ||
Mikeware 2 - 27.01.21 - 14:30 | число минус номер в кортеже? | ||
Злопчинский 3 - 27.01.21 - 14:31 | (2) номер в кортеже явно не задан, исходная последовательность - просто числа...
23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44 . сорри за неточное описание первоначальное | ||
Злопчинский 4 - 27.01.21 - 14:33 | .. и мы знаем что числовой ряд можно разбить на кортежи по правилу "4-3-4" | ||
ViSo76 5 - 27.01.21 - 14:33 | (3) Через соответствие и массив ссылок в виде значения легко решить, зачем формула? | ||
Mikeware 6 - 27.01.21 - 14:33 | (3) ну тогда возвращать всегда 1, и считать, что кортеж начинается с этого числа | ||
Злопчинский 7 - 27.01.21 - 14:35 | (5) это крайний вариант, но это бяково, так как требует задния дополнительных данных явно. это хреново, требует "квалификации" | ||
Злопчинский 8 - 27.01.21 - 14:35 | (6) сорри. я тупой, ничего не понял... | ||
Злопчинский 9 - 27.01.21 - 14:37 | можно считать что числовой ряд начинается с 1, если разбить на кортежи то тоже получится "4-3-4"... | ||
Mikeware 10 - 27.01.21 - 14:39 | (цел((число-23)%11)-7)%4+(цел((число-23)%11)-4)%3+(цел((число-23)%11))%4 | ||
ViSo76 11 - 27.01.21 - 14:40 | (7) датам данных то с гулькин нос
Число в кортежах ограниченное значение в виде ключа, ну а массив ссылок на кортежи так же не шибко много отдирает. Начальное заполнение может быть не быстрым, а вот добавление кортежа быстрое, поиск очень быстрый - одни плюсы, нужна память можно поджать в хранилище ), потом развернуть при поиске | ||
Ненавижу 1С 12 - 27.01.21 - 14:41 | (0) нужно знать периодичность, дальше арифметика | ||
Mikeware 13 - 27.01.21 - 14:44 | (12) периодичность - 11. внутри этого периода - три кортежа | ||
Злопчинский 14 - 27.01.21 - 14:55 | (10) не катит Процедура Сформировать(ПараметрЧисло) врем1 = _GetPerformanceCounter(); Результат = (цел((ПараметрЧисло-23)%11)-7)%4+(цел((ПараметрЧисло-23)%11)-4)%3+(цел((ПараметрЧисло-23)%11))%4; Сообщить("число= "+параметрЧисло+", первое число кортежа= "+Результат+", время расчета= "+(_GetPerformanceCounter()-врем1)/1000); КонецПроцедуры// Сформировать . число= 23, первое число кортежа= -4, время расчета= 0 число= 24, первое число кортежа= -1, время расчета= 0 число= 25, первое число кортежа= -1, время расчета= 0.001 число= 26, первое число кортежа= 2, время расчета= 0 число= 27, первое число кортежа= -3, время расчета= 0 число= 28, первое число кортежа= 0, время расчета= 0 число= 29, первое число кортежа= 3, время расчета= 0 число= 30, первое число кортежа= 3, время расчета= 0 число= 31, первое число кортежа= 2, время расчета= 0 число= 32, первое число кортежа= 5, время расчета= 0 число= 33, первое число кортежа= 5, время расчета= 0 число= 34, первое число кортежа= -4, время расчета= 0 число= 35, первое число кортежа= -1, время расчета= 0 число= 36, первое число кортежа= -1, время расчета= 0 число= 37, первое число кортежа= 2, время расчета= 0 число= 38, первое число кортежа= -3, время расчета= 0.001 число= 39, первое число кортежа= 0, время расчета= 0 число= 40, первое число кортежа= 3, время расчета= 0 число= 41, первое число кортежа= 3, время расчета= 0 число= 42, первое число кортежа= 2, время расчета= 0 число= 43, первое число кортежа= 5, время расчета= 0.001 число= 44, первое число кортежа= 5, время расчета= 0 | ||
8 bit 15 - 27.01.21 - 14:56 | Т.е. получается, что берем 1-е значение и это будет первое значение первого кортежа, потом надо пропустить 3 значения и вернуть 4-е, потом надо пропустить 2 значения и вернуть 3-е, потом 4-е и цикл повторить.
23 х х х 27 х х 30 х х х 34 х х х 38 х х 41 4________3______4________4________3______4 и т.д. ? | ||
Garykom 16 - 27.01.21 - 14:59 | (0) Нет, нельзя | ||
Злопчинский 17 - 27.01.21 - 15:00 | (15) без циклов. операциями арифметическими.
. для упрощения можно считать, что числовой ряд с 1 начинается (4)1,2,3,4 - д.б. 1 (3)5,6,7 - д.б. 5(4)8,9,10,11 - д.б. 8 - (4)12,13,14,15 - д.б. 12 (3)16,17,18 - д.б. 16(4)19,20,21,22 - д.б. 19 - (4)23,24,25,26 - д.б. 23 (3)27,28,29 - д.б. 27(4)30,31,32,33 - д.б. 30 - итд | ||
Злопчинский 18 - 27.01.21 - 15:01 | |||
Garykom 19 - 27.01.21 - 15:02 | |||
Злопчинский 20 - 27.01.21 - 15:04 | пусть даже не одним оператором типа как в (10), пусть несколькими ;-) | ||
RomanYS 21 - 27.01.21 - 15:07 | (17)
Функция _(Ч) Ост = (Ч-1)%11+1; Нач = ?(Ост >= 8, 8, ?(Ост >= 5, 5, 1)); Возврат Ч - Ост + Нач; КонецФункции// () | ||
Garykom 22 - 27.01.21 - 15:07 | (20) Можно попробовать через https://ru.wikipedia.org/wiki/Периодическая_функция
Только какую подобрать под 4-3-4-4-3-4-4-... и главное как ее без цикла считать? | ||
Garykom 23 - 27.01.21 - 15:08 | (21) Ты цикл нашел? | ||
Garykom 24 - 27.01.21 - 15:10 | (23)+ 11, 22, 33 и т.д. типа? | ||
Mikeware 25 - 27.01.21 - 15:10 | (22) считать просто - как %11 | ||
Garykom 26 - 27.01.21 - 15:11 | (25) согласен %11 | ||
Злопчинский 27 - 27.01.21 - 15:11 | (21)
число= 1, первое число кортежа= 1, время расчета= 0 число= 2, первое число кортежа= 1, время расчета= 0 число= 3, первое число кортежа= 1, время расчета= 0 число= 4, первое число кортежа= 1, время расчета= 0 - число= 5, первое число кортежа= 5, время расчета= 0 число= 6, первое число кортежа= 5, время расчета= 0 число= 7, первое число кортежа= 5, время расчета= 0 - число= 8, первое число кортежа= 8, время расчета= 0 число= 9, первое число кортежа= 8, время расчета= 0 число= 10, первое число кортежа= 8, время расчета= 0 число= 11, первое число кортежа= 8, время расчета= 0 число= 12, первое число кортежа= 12, время расчета= 0 число= 13, первое число кортежа= 12, время расчета= 0 число= 14, первое число кортежа= 12, время расчета= 0 число= 15, первое число кортежа= 12, время расчета= 0 - число= 16, первое число кортежа= 16, время расчета= 0 число= 17, первое число кортежа= 16, время расчета= 0 число= 18, первое число кортежа= 16, время расчета= 0 - число= 19, первое число кортежа= 19, время расчета= 0 число= 20, первое число кортежа= 19, время расчета= 0 число= 21, первое число кортежа= 19, время расчета= 0 число= 22, первое число кортежа= 19, время расчета= 0 - число= 23, первое число кортежа= 23, время расчета= 0.001 число= 24, первое число кортежа= 23, время расчета= 0 число= 25, первое число кортежа= 23, время расчета= 0 число= 26, первое число кортежа= 23, время расчета= 0 - число= 27, первое число кортежа= 27, время расчета= 0 число= 28, первое число кортежа= 27, время расчета= 0 число= 29, первое число кортежа= 27, время расчета= 0 - число= 30, первое число кортежа= 30, время расчета= 0 число= 31, первое число кортежа= 30, время расчета= 0 число= 32, первое число кортежа= 30, время расчета= 0 число= 33, первое число кортежа= 30, время расчета= 0 - число= 34, первое число кортежа= 34, время расчета= 0 число= 35, первое число кортежа= 34, время расчета= 0 число= 36, первое число кортежа= 34, время расчета= 0 число= 37, первое число кортежа= 34, время расчета= 0 - число= 38, первое число кортежа= 38, время расчета= 0 число= 39, первое число кортежа= 38, время расчета= 0 число= 40, первое число кортежа= 38, время расчета= 0 - число= 41, первое число кортежа= 41, время расчета= 0 число= 42, первое число кортежа= 41, время расчета= 0 число= 43, первое число кортежа= 41, время расчета= 0 число= 44, первое число кортежа= 41, время расчета= 0 | ||
Злопчинский 28 - 27.01.21 - 15:12 | (21) результат верный. | ||
Злопчинский 29 - 27.01.21 - 15:13 | есть варианты "проще", без условий...? | ||
Ненавижу 1С 30 - 27.01.21 - 15:14 | R = (N-(N-1)%11)+((N-1)%11-(N-1)%11%7)+((N-1)%11-(N-1)%11%4)*(1-((N-1)%11-(N-1)%11%7)/7); Рекламное место пустует | ||
Малыш Джон 31 - 27.01.21 - 15:16 | (0)А последовательность кортежей любая или всегда 4-3-4-4-3-4-... ? | ||
Злопчинский 32 - 27.01.21 - 15:17 | (30) Результат верный число= 1, первое число кортежа= 1, время расчета= 0 число= 2, первое число кортежа= 1, время расчета= 0 число= 3, первое число кортежа= 1, время расчета= 0 число= 4, первое число кортежа= 1, время расчета= 0 число= 5, первое число кортежа= 5, время расчета= 0 число= 6, первое число кортежа= 5, время расчета= 0 число= 7, первое число кортежа= 5, время расчета= 0 число= 8, первое число кортежа= 8, время расчета= 0 число= 9, первое число кортежа= 8, время расчета= 0 число= 10, первое число кортежа= 8, время расчета= 0 число= 11, первое число кортежа= 8, время расчета= 0 число= 12, первое число кортежа= 12, время расчета= 0.001 число= 13, первое число кортежа= 12, время расчета= 0 число= 14, первое число кортежа= 12, время расчета= 0 число= 15, первое число кортежа= 12, время расчета= 0.001 число= 16, первое число кортежа= 16, время расчета= 0 число= 17, первое число кортежа= 16, время расчета= 0 число= 18, первое число кортежа= 16, время расчета= 0 число= 19, первое число кортежа= 19, время расчета= 0 число= 20, первое число кортежа= 19, время расчета= 0 число= 21, первое число кортежа= 19, время расчета= 0 число= 22, первое число кортежа= 19, время расчета= 0 число= 23, первое число кортежа= 23, время расчета= 0 число= 24, первое число кортежа= 23, время расчета= 0 число= 25, первое число кортежа= 23, время расчета= 0 число= 26, первое число кортежа= 23, время расчета= 0.001 число= 27, первое число кортежа= 27, время расчета= 0 число= 28, первое число кортежа= 27, время расчета= 0 число= 29, первое число кортежа= 27, время расчета= 0 число= 30, первое число кортежа= 30, время расчета= 0 число= 31, первое число кортежа= 30, время расчета= 0 число= 32, первое число кортежа= 30, время расчета= 0 число= 33, первое число кортежа= 30, время расчета= 0 число= 34, первое число кортежа= 34, время расчета= 0 число= 35, первое число кортежа= 34, время расчета= 0 число= 36, первое число кортежа= 34, время расчета= 0 число= 37, первое число кортежа= 34, время расчета= 0 число= 38, первое число кортежа= 38, время расчета= 0.001 число= 39, первое число кортежа= 38, время расчета= 0 число= 40, первое число кортежа= 38, время расчета= 0 число= 41, первое число кортежа= 41, время расчета= 0 число= 42, первое число кортежа= 41, время расчета= 0 число= 43, первое число кортежа= 41, время расчета= 0 число= 44, первое число кортежа= 41, время расчета= 0.001 | ||
RomanYS 33 - 27.01.21 - 15:17 | (29) Без условий или без "?(,,)"?Без условий можно массив предварительно подготовить и использовать {1,1,1,1,5,5,5,8,8,8} | ||
Злопчинский 34 - 27.01.21 - 15:19 | (31) в данном случае - 4-3-4
только, зараза, в ряду чисел кое-где встречаются числа не принадлежащие ни одному кортежу.. ;-) например, с 1 до 44 идет 4-3-4, потом блин 45 которое считается внекортежным, с 46 снова 4-3-4 | ||
Злопчинский 35 - 27.01.21 - 15:20 | |||
RomanYS 36 - 27.01.21 - 15:21 | (34) полки решил пронумеровать? | ||
Злопчинский 37 - 27.01.21 - 15:21 | задача тупо складская 4-3-4 - это стеллажи, по фронту на стеллаже "4яч-3яч-4яч" | ||
Злопчинский 38 - 27.01.21 - 15:21 | (36) если бы... пронумеровано уже. | ||
Злопчинский 39 - 27.01.21 - 15:22 | причем кривовато... | ||
RomanYS 40 - 27.01.21 - 15:23 | |||
Злопчинский 41 - 27.01.21 - 15:25 | https://www.screencast.com/t/tgcwDi3BO - расстановка стеллажей, сейчас показано как есть сейчас. нумеровали от стены (67яч). с учетом того, что стеллажи могут быть еще наращиваться влево по картинке от 22 вниз по числам.
. пронумеровали криво, нумеровать надо было с 68яч, потому что 22 яч которая сейчас на картинке - д.б. тоже проходом если стеллажи доставлять будут... | ||
Злопчинский 42 - 27.01.21 - 15:26 | по факту - задача расчета номера резервной ячейки, которая общая для нескольких резервных ячеек | ||
Злопчинский 43 - 27.01.21 - 15:28 | исходя из картинки в (41) ячейка 22 -будет проходом, и нумерация получится от 0 до 21 тоже по принципу 4-3-4..
а это хреново, обычно ячейка 00 - нумеруется буферная, а тут будет занята под рабочую ячейку - НО ЭТО НЕПРИНЦИПИАЛЬНО. . | ||
Mikeware 44 - 27.01.21 - 15:29 | (39) а в чем нужда именно арифметики? | ||
Garykom 45 - 27.01.21 - 15:30 | (44) бесконечный склад )) | ||
Злопчинский 46 - 27.01.21 - 15:33 | Теперь в формулу (30) надо внести периодичность что 1. числовой ряд начинается с 0, ячейки 22 и 45 - "внекортежные"2. и рассчитывать по получившемуся первому номеру кортежа соседние вверх и соседние вниз "первые номера". . то есть для любой рабочей ячейки (из соответсвующего кортежа) определяется номер общей резервной ячейки этого кортежа, если резервная полученная ячейка занята - ищем по соседним резервным ячейкам свободную... . | ||
RomanYS 47 - 27.01.21 - 15:35 | |||
Злопчинский 48 - 27.01.21 - 15:36 | (44) упростить задание топологии и связи ячеек.
по большому счету иначе придется для каждой рабочей ячейки задавать связанную с ней резервную ячейку. это порядка 2500 записей. с учетом того, что эти 2500 записей связаных ячеек придется постоянно молотить, пусть даже и прочитав их единожды в память - хз как это на быстродействии скажется, потому как произведений и вычитаний таблиц и так немало еще до работы с резервными ячейками... | ||
Злопчинский 49 - 27.01.21 - 15:37 | (47) у тя бухи/манагеры часто настравивают принципиальные моменты в программе, которые определяют поведение/расчет результата программы? | ||
Mikeware 50 - 27.01.21 - 15:38 | а что мешает взять массив из 11 ячеек, и один раз заполнить? | ||
Mikeware 51 - 27.01.21 - 15:40 | (48) "потому как произведений и вычитаний таблиц и так немало еще до работы с резервными ячейками" - ты "рюкзак" решаешь, чтоль? | ||
Fragster 52 - 27.01.21 - 15:40 | результат целочисленного деления на 11 и остаток от него спасут отца русской демократии
(37) а зачем ты на это забился? я когда адресацию делал отдельно стеллажи, отдельно ячейки нумеровал. типа А (проход) - 4 (стеллаж) - 3 (ярус) - 2 (ячейка) | ||
RomanYS 53 - 27.01.21 - 15:41 | (49) Не)))... всё само считается по формула принесенным с форума | ||
Fragster 54 - 27.01.21 - 15:41 | вот еще лайфхак - если несколько вариантов маршрута по складу - то можно одному стеллажу несколько (виртуальных) адресов присваивать (для правильной сортировки при различных путях обхода) | ||
RomanYS 55 - 27.01.21 - 15:42 | |||
Fragster 56 - 27.01.21 - 15:43 | (55) так я и говорю - задача возникла изначально из-за неправильной нумерации | ||
Fragster 57 - 27.01.21 - 15:44 | просто правило 4-3-4 легко перерастет в 2-2-2-2, 3-3-3-1 и прочее | ||
Fragster 58 - 27.01.21 - 15:45 | ну и да - прочитал из всей ветке выборочно сообщения три-четыре | ||
Fragster 59 - 27.01.21 - 15:45 | *ветки | ||
Garykom 60 - 27.01.21 - 15:47 | Визуальный редактор схемы склада с переводом в компактную форму хранения и функция работающая по этой компактной Рекламное место пустует | ||
Злопчинский 61 - 27.01.21 - 15:47 | (56) если бы Я нумеровал - я бы нумеровал правильно. | ||
Fragster 62 - 27.01.21 - 15:48 | (61) ну прилепи свою абстракцию сверху | ||
Garykom 63 - 27.01.21 - 15:48 | А на эти ваши " формулу с простыми арифметическими действиями" следующий прогер будет громко матом ругаться - икать кто то устанет | ||
Fragster 64 - 27.01.21 - 15:51 | (63) согласен | ||
Злопчинский 65 - 27.01.21 - 15:52 | (52) варианты нумерации разные. с отдельнйо нумерацией стеллажей/секций - хорошо когда стеллажи КРУПНЫЕ.
когда туева хуча меочевки и один стеллаж/секция от другого визуально еще выцепить надо - однопроходный поиск найди ячейку 77 превращается в двух проходный найди стеллаж/секцию 7, на ней найди место 3. это канает на крупных секциях стеллажах, а когда мелочевка и место 3 на секции 7 отстоит от места 3 в секции 8 на расстоянии метра - ты нафиг "убьешься" от мельтешения в обозримом поле кучи одинаковых номеров 1-2-3-1-2-3-4-1-2-3-1-2-3 и сборщики накосячат вместо 7-1 возьмут 8-1. | ||
Злопчинский 66 - 27.01.21 - 15:53 | (63) да, я тоже согласен. | ||
RomanYS 67 - 27.01.21 - 15:54 | (63) можно в комментариях @Ненавижу1С автором формулы указать, путь икает) | ||
Злопчинский 68 - 27.01.21 - 15:54 | (63) Предлагаешь все-таки остановиться на связных ячейках? задавать для каждой рабочей ячейки "подчиненную" резервную? так-то оно конечно "прозрачнее" будет. наверное к этому варианту склонюсь... | ||
Злопчинский 69 - 27.01.21 - 15:55 | (67) ;-) блин, ребята мозгоголовастые капец как! завидую прям хорошей завистью. | ||
Fragster 70 - 27.01.21 - 16:14 | (65) не возьмут, если сканить номера ячеек будут. да и никто не мешает вместо 3 писать полный адрес | ||
Mikeware 71 - 27.01.21 - 16:16 | (65) поэтому и используют нумерацию вида [I/II/III/IV]-[А/Б/В/Д/Е]-[1/2/3/4/5]-[А/Б/В/Д/Е]. Ну на крайняк просто цифра-буква-цифра | ||
RomanYS 72 - 27.01.21 - 16:18 | |||
Злопчинский 73 - 27.01.21 - 16:25 | (70) сборщик должен быстро собирать и по минимум по возможности отвлекаться на РЕГУЛЯРНОЕ чтение множества цифр и букв. | ||
Злопчинский 74 - 27.01.21 - 16:28 | (70) возьмут, ибо скан ячейки не сеть физическое действие взятие товар а из ячейки. Скан всего лишь снижает вероятность ошибки. на крупных ячейках - ошибаться труднее, на куче мелких ячеек - сплошь и рядом. и каждый лишний скан на сборе кучи мелочевки - это потраченное время, отвлечение на скан, переключение с экрана (какую эячейку сосканирвоать) на сам скан. Понятно что тут идеальности не будет. надо точить собственно сами интерфейсы на ТСД и только опыт эксплуатации покажет что где как улучшить. пока - так. | ||
Aleksey 75 - 27.01.21 - 16:50 | (74) ну идёт отскана и замена на роботов которые сами по стойки заезжают и берут товар. Но это у супер крупняков | ||
Ненавижу 1С 76 - 27.01.21 - 17:45 | (67) да блин, чё сразу икает? | ||
Злопчинский 77 - 27.01.21 - 18:52 | (75) это хорошо для коробочной/паллетной сборки. для мелкоштучки - фиг вам. для мелкоштучки хорошо работает вертикальные конвеерные системы "товар к человеку", но ни стоят - мама не горюй. | ||
Злопчинский 78 - 27.01.21 - 18:54 | (68) не, делать надо не так, есть другие "штатные" методы. совокупности рабочих ячеек кортежа и родственной ячейке резерва присваивается одинаковый рейтинг, и операция размещения, при поиске ячеек-приемников, например, упорядочиваются по рейтингу.. и все получится... Попробуем. | ||
Йохохо 79 - 27.01.21 - 19:05 | (78) что такое ячейка резерва? | ||
Йохохо 80 - 27.01.21 - 19:17 | а, всё) | ||
Конструктор1С 81 - 27.01.21 - 19:43 | |||
Йохохо 82 - 27.01.21 - 20:32 | (81) перепиши через ?(,,) =) | ||
Злопчинский 83 - 28.01.21 - 03:16 |
|
Список тем форума |