Вверх ↑
Этот топик читают: Гость
Ответов: 1535
Рейтинг: 176
#1: 2010-10-21 11:20:03 ЛС | профиль | цитата
Я – киномеханик и мне нужно автоматизировать работу с серийными номерами кинобилетов.

   1. В данной задаче необходимо последовательно присоединить каждую строку из колонки B к соответствующим значениям колонки A. Чтобы в результате получилось, как в C. При этом видно, что значения из B не пересекаются, а выходят за пределы значений указанных в A.

Таблица серийных номеров
ABC
аб999401-999555аб999558аб999401-999915
аб999557пх999402аб999917
аб999559-999900аб999556аб999920-999950
аб999910-999915аб999901-999909пх999401-999404
аб999917пх999406-999418пх999406-999418
аб999920-999950пх999404
пх999401
пх999403

Из представленного выше видно, что в строке значение аб999557 представляет из себя единственное число (билет), в отличие от диапазонного аб999401-999555, где индекс «аб» делает эти числа неповторимыми по отношению к другим. Хочу ещё отметить, что индекс всегда двузначный, а значение числа шестизначно.

   2. Во второй задаче необходимо выполнить обратное действие, т.е. из таблицы C последовательно вычесть (разъединить) значения из B, чтобы в результате получилось представление из A.

Представленные задачи не являются ребусами, которые я кстати очень люблю, это готовые результаты, где отсутствует лишь решение. Найдите логику решения, кратчайший путь, как в алгебре, а значит и высокую производительность, вот и всё


Признаюсь честно, решить эти задачи мне частично удалось путём перебора значения числа, но это сводит производительность на нет, а при работе с числом 999999 и вовсе умирает (виснет).

Изменил содержание таблицы в процессе обсуждения.
1. Включил разрыв в последовательность значений группы "аб"- аб999917
2. Изменил значение пх999405-999418, на пх999406-999418

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
vip
#1.1контекстная реклама от партнеров
Ответов: 1891
Рейтинг: 110
#2: 2010-10-21 12:03:15 ЛС | профиль | цитата
ser_davkin, а по-русски можно написать, а то нифига не понятен алгоритм?
карма: 0
%time%
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#3: 2010-10-21 12:14:39 ЛС | профиль | цитата
Я вот тоже не понял,откуда в С появилось 999950, когда максимальное в B -- 999558, те, должно было получится -- аб999401-999558
А во втором С должно было получится -- аб999557-пх999402.
И как можно, к примеру, получить из 999558, 999555 и 999401 -- 999950
карма: 22

0
Ответов: 758
Рейтинг: 112
#4: 2010-10-21 12:16:34 ЛС | профиль | цитата
Я правильно понял
Пример получения аб999401-999950
Выбираем из столбиков А и В все индексы «аб»
потом ставим в порядке возрастания
аб999401-9995555, аб999556, аб999557, аб999558, аб999559-999900, аб999901-999909, аб999910-999950
=
аб999401-999950
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#5: 2010-10-21 12:20:00 ЛС | профиль | цитата
miver, минуточку, а откуда взялось вот это --
miver писал(а):
аб999559-999900, аб999901-999909, аб999910-999950
где указано, что что-то есть выше аб999558
И почему не сразу аб999559-999950
карма: 22

0
Ответов: 1535
Рейтинг: 176
#6: 2010-10-21 12:22:05 ЛС | профиль | цитата
В том то и фокус, что необходимо найти алгоритм, склеить значения A и B, так чтобы в результате получить C. И наоборот.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#7: 2010-10-21 12:24:41 ЛС | профиль | цитата
ser_davkin писал(а):
необходимо найти алгоритм

Вот это чешуя -- получить хрен знает что из хрен знает чего

Мне так что-то очень кажется, что ser_davkin чего-то недопонял или пропустил
карма: 22

0
Ответов: 758
Рейтинг: 112
#8: 2010-10-21 12:32:23 ЛС | профиль | цитата
nesco писал(а):
где указано, что что-то есть выше аб999558
И почему не сразу аб999559-999950

Я их просто выбрал и поставил по порядку
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#9: 2010-10-21 12:34:01 ЛС | профиль | цитата
miver писал(а):
Я их просто выбрал и поставил по порядку

Все, понял. выбор идет из всей таблицы
карма: 22

0
Ответов: 758
Рейтинг: 112
#10: 2010-10-21 12:53:24 ЛС | профиль | цитата
ser_davkin писал(а):
В том то и фокус, что необходимо найти алгоритм, склеить значения A и B, так чтобы в результате получить C. И наоборот.

Раз так то алгоритм условного А+В=С, я привел
Если знаешь только С, то А и В могут быть любыми, прям как в математике
карма: 1

0
Ответов: 1535
Рейтинг: 176
#11: 2010-10-21 12:56:10 ЛС | профиль | цитата
miver писал(а):
Раз так то алгоритм условного А+В=С, я привел
Если знаешь только С, то А и В могут быть любыми, прям как в математике
А теперь попробуй реализовать это в схему. Не забудь про обратный алгоритм.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#12: 2010-10-21 13:01:32 ЛС | профиль | цитата
nesco писал(а):
Вот это чешуя -- получить хрен знает что из хрен знает чего
(с) писал(а):
Борис, ты не прав!
ser_davkin писал(а):
А теперь попробуй реализовать это в схему. Не забудь про обратный алгоритм
Человек свои проблемы хочет переложить на чужие плечи.
Для этого есть платная тема.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1535
Рейтинг: 176
#13: 2010-10-21 13:03:12 ЛС | профиль | цитата
С виду задачи простые, но когда начинаешь реализовывать, сталкиваешся с массой нюансов.
------------ Дoбавленo в 13.03:
Tad, Если не интересно, я не настаиваю.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#14: 2010-10-21 13:12:45 ЛС | профиль | цитата
ser_davkin писал(а):
С виду задачи простые, но когда начинаешь реализовывать, сталкиваешся с массой нюансов.
Правильно поставленная задача на 99% уже решена.
Я вижу её так:
1. Есть два пункта по продаже билетов.
2. Есть список серийных номеров билетов по каждой пункту .
3. Что нужно узнать - нифига не понятно.

Поправь - что не так ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8887
Рейтинг: 823
#15: 2010-10-21 13:14:58 ЛС | профиль | цитата
ser_davkin, если бы я был киномехаником, то составил задачу так:
Ребята! Есть три списка поступивших, проданных и оставшихся билетов (духбуквенный индекс и шестизначный номер) в виде непрерывных диапазонов. Диапазон может быть представлен и единственным билетом.
Надо по любым двум спискам составить третий!

Посмотрев на правильно поставленный вопрос я бы, если бы я был киномехаником, ответил себе: "Ребята, да не нуждаюсь я в помощи, задача-то проста, как А+В=С, сам уже сделал!"
карма: 19

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)