вопрос про обложки?

  • Автор темы Автор темы linosonic
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: вопрос про обложки?

Извини, алгоритм плохой. Время на его осуществление по мере окончания выборки при большом массиве стремится к бесконечности. Сам мог бы догадаться - когда доля "сыгравших" чисел становится большой, на проверку требуется все больше и больше времени.

Что касается того, как это печатать - недостаточно вводных.

1. Какой-таки тираж? Одно дело к выборке из 1000 билетов приделать еще 8 знаков, другое - полноценный миллиард чисел.

2. Сколько билетов на листе?

3. Что представляет из себя номер? Буквы есть? Только цифры? Значность? Цвет? и так далее...

Универсального решения не существует. Оно сильно зависит от исходных. Иногда выгодней печатать на цифре даже большой объем (поставили же японцы 100 Айдженов на почту для таких целей), иногда лучший вариант - 1000 таджикороссиян, вручную мешающие билетики...
 
Ответ: вопрос про обложки?

Ага... пока писал, ясность появилась. Рассчитаем на миллион для простоты.

1. Ну, во-первых миллион номеров, как я уже говорил, это полчаса работы программки. Еще 2 часа на написание и отладку. Результат - 5 экселевских файликов по 4 колонки по 50 000 номерков. Ну еще час на чай с сушками.

2. 4 колонки я взял, потому что я так понял на А4 формате 2 штуки - значит на А3 - 4. Принт Мерже на А3 лист - позиционируем. Итого 250 000 А3 листов.

3. Насколько я понял - черно/белая печать, допустимая (по ТТХ) на лазерном принтере. Себестоимость печати на машинке типа Xerox 4112 по расходникам - примерно 10 копеек. Бумага предварительно запечатанная офсетом, значит не считаем. Принятая цена - 2 рубля за А3 1+1 с бумагой 80 грамм - минус бумажка 40 копеек, делим на 2 (2 стороны), итого - 80 копеек за А3 листопрогон.

0,8*250 000 штук = 200 000 рублей. За сложность и интеллект можно добавить еще 100 000. Итого = 300 000 рублей, что не так много, а проблема решается абсолютно качественным способом.

Экономика - 10 копеек расходка, 10 копеек (грубо) амортизация, время работы машины (примерно при средней бумаге) - 10 смен по 12 часов, итого зарплата пусть 50 000 на все с грузчиками - 20 копеек, аренда/электирчество/прочее - еще пятак. Расходы - 45 копеек или 112 500 рублей. Чистая прибыль = 187 500.

Хочу такой заказ... готов, кстати, еще сбросить... ;)
 
Ответ: вопрос про обложки?

Ch

Ну разве не понял... Речь шла о довольно старом тираже. Больше 2-х лет...
Там ещё была хохма, что типография с SM 102-4, сбросила нам 600 тыс. по бумаге и 1,2 мл. по краскопрогонам на SM 52 ;)
Что говорит о том, что не всегда дело в машине, иногда ещё и напечатать нужно качественно ;)
Кстати они другие тиражи того же заказчика нам скидывали, тоже, хм... Ну явно не на малый формат. Видимо просрались, решили вкусного заказчика сохранить.

Упечатались. Печатники под конец вешаться стали, достало...

А такой тираж не отдам... Насколько понимаю, там ребятки на нумерации ещё больше наварились, чем ты чистую прибыль посчитал ;)

P.S. Ксати, тут наблюдал как печатники печатали 6 тыс. Тоже, говорят достало...
С их тчки зрения оптимально для печатника где-то 1500. И не скучно и есть время расслабится.
 
Ответ: вопрос про обложки?

Не, ну ты спрашивал, как сделать такую случайную нумерацию? Ну, вот я посчитал - довольно рядовой получается заказ, крупненький, но ничего особенного. Две недели работы, а круглосуточно, так и вовсе одна. И деньги вменяемые для заказчика.
 
Ответ: вопрос про обложки?

Ch сказал(а):
Время на его осуществление по мере окончания выборки при большом массиве стремится к бесконечности.
А substitution, как это делается с шрифтами в Дистиллере, ещё не придумали. :D

Как придумают - сразу использовать для усечения и сортировки массива для того, чтобы использовать неиспользованные ранее значения. (С) мой.

Только нужно использовать хороший генератор псевдослучайной последовательности, а не то, что предлагает Паскаль.

ЗЫ. Только зачем это всё? Чтобы не дай бог на одном листе не оказалось возрастающая последовательность?
 
Ответ: вопрос про обложки?

Чтобы не дай бог не оказалось предсказуемых чисел.
Можно фальсифицировать номера послав более одного, типа SMS сообщения, что типа купил 10000 бутылок пива. Соответственно вероятность выйгрыша повышается.

Такая штука оптимизируется, при желании, можно организовать двоичное дерево, можно организовать какой хэш, типа вход через каждую 1000.
Но это, возможно, дольше думать, чем воспользоваться линейным поиском.
 
Ответ: вопрос про обложки?

ch_alex сказал(а):
А substitution, как это делается с шрифтами в Дистиллере, ещё не придумали. :D
Не понял? А я что предложил несколькими постами выше? Это как раз и есть усечение массива по используемым числам. А упорядочивание не требуется - все равно случайной выборкой выбирать из чего - из упорядоченного или нет.
ch_alex сказал(а):
Только нужно использовать хороший генератор псевдослучайной последовательности, а не то, что предлагает Паскаль.
Достаточно Паскалевского более чем. На миллионе значений проверял - гауссова кривая отлично получается.
 
Ответ: вопрос про обложки?

Кстати...
Вот тут мой провайдер развлекается...

Карта оплаты:

LogIn: xopy7278
Password: jyba.ohon

И подобное на всех картах.
т.е. совершенно псевдослучайно генерируемые комбинации, группы состоящие из 4-х букв и всегда легко произносимые и набираемые. Что, пары согласная-гласная?
 
Ответ: вопрос про обложки?

В качестве защиты от подделок отлично идут контрольные суммы - цифры, вычисляемые по какому-нибудь алгоритму из случайной части и вставляемые в тело номера на произвольные позиции.
 
Ответ: вопрос про обложки?

Ch
На самом деле можно сфомировать 5 значный номер, обработать его алгоритмом включающим контрольные суммы, естественно, не чисто CRC32 типа...
И размешивающему их по всему числу. Ну, есть и более весёлые криптосистемы ;)
Придумать можно много всего... Тем более, стойкий шифр здесь не нужен. Хватит наколенной игрушки.
 
Ответ: вопрос про обложки?

Ch сказал(а):
Не понял? А я что предложил несколькими постами выше? Это как раз и есть усечение массива по используемым числам.
Тогда я не понял - почему, в таком случае, время возрастает, а не сокращается? Ведь массив при каждом извлечении выбранного числа (кода) смыкается. При правильной реализации массива можно изменять адресные ссылки элементов вместо того, чтобы копировать данные.

ЗЫ. Кстати, вы меня опередили. Я давненько задумывался над таким методом генерации псевдослучайных последовательностей и даже начал изыскивать математическое обоснование, но как-то отошёл от этих дел. Зарабатывание денег и так далее... Лихие девяностые...

JAW сказал(а):
Вот тут мой провайдер развлекается...

Карта оплаты:

LogIn: ******
Password: ******
Все эти пары логин-пассворд (а они должны быть разными для каждого юзверя) обязательно должны быть занесены в базу данных провайдера, а не генерироваться налету. Т.е. вначале происходит генерация пар, затем внесение данных в базу системы регистрации и учёта, а затем внесение переменных данных (списка в нашем случае) в форму печати.

С другой стороны, страничка оплаты может запрашивать уже существующий логин (или просит выполнить регистрацию нового) юзера, поэтому необязательно для каждой платёжной карточки генерировать уникальный логин. Правда, зная логин оплаты, любой может запросто накачать себе какую-то определённую сумму. :D
 
Ответ: вопрос про обложки?

ch_alex сказал(а):
Тогда я не понял - почему, в таком случае, время возрастает, а не сокращается? Ведь массив при каждом извлечении выбранного числа (кода) смыкается. При правильной реализации массива можно изменять адресные ссылки элементов вместо того, чтобы копировать данные.
Время возрастает неограничено в алгоритме, предложенным JAWом. С него я и начинал, и на эту мину налетел сразу. Мой от этого свободен. Что касается переписывания значений в массиве, то это много времени не занимает. Были проблемы на стареньких машинах при адресации нужного объема памяти (32 бита, как никак), решались динамическими структурами Паскаля, которые сохраняются на диске. Или вообще работой с текстовым файлом - это подольше, но тут вообще ограничения только от места на диске. Там "сыгравшее" число просто стирается ;)

ch_alex сказал(а):
ЗЫ. Кстати, вы меня опередили. Я давненько задумывался над таким методом генерации псевдослучайных последовательностей и даже начал изыскивать математическое обоснование, но как-то отошёл от этих дел. Зарабатывание денег и так далее... Лихие девяностые...
Хе-хе в лихих 90-х в хороших ВУЗах дипломы никто не отменял. И дипломные работы тоже. Меня этот алгоритм трижды спасал - я использовал его при расчете солнечного ветра, устойчивости атомного реактора и у отца в катализе на поверхности. Даже удивительно, насколько в разных областях людям нужно рандомизировать заданную область данных.

Если честно, этот алгоритм - одна из немногих чисто интеллектуальных задачек, которую я решил так красиво. Все остальное - работа, когда деньги и титулы зарабатывались трудом... поэтому до сих пор немного горжусь.

Все, себя с утра похвалил - день задался... ;)
 
Статус
Закрыто для дальнейших ответов.