powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Лучшие задачи проекта
191 сообщений из 191, показаны все 8 страниц
Лучшие задачи проекта
    #38096239
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разработка сверхбыстрой СУБД генерит множество интересных задач.
Буду выкладывать некоторые из самых простых, которые можно решать
не вникая в контекст работы "космической станции":

Генерятся 6 случайных байт (чисел от 0 до 255).
Какова вероятность что любые два числа из этих шести будут совпадать между собой ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096292
BAZlST,
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096297
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно гря, с формулой сразу сообразить тяжело.
На практике:

Вероятность ~0.05832, или примерно один к двадцати.

Код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 Random r = new Random();
            List<int> numbers = new List<int>();
            decimal count = 0;

            for (int j = 0; j < 1000000; j++)
            {
                for (uint i = 0; i < 6; i++)
                {
                    int number = r.Next(0, 255);
                    if (numbers.IndexOf(number) >= 0)
                        count++;

                    numbers.Add(number);             
                }

                numbers.Clear();

            }

            decimal result = count / 1000000;
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096303
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм, пофиксил баг в коде. Но результат не изменился, один к двадцати.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Random r = new Random();
            List<int> numbers = new List<int>();
            decimal count = 0;

            for (int j = 0; j < 1000000; j++)
            {
                for (uint i = 0; i < 6; i++)
                {
                    int number = r.Next(0, 255);
                    if (numbers.IndexOf(number) >= 0)
                    {
                        count++;
                        break;
                    }

                    numbers.Add(number);             
                }

                numbers.Clear();

            }

            decimal result = count / 1000000;

...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096307
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И сразу по ходу дела, продолжение этойже задачи ( тоже имеет практическое значение ).

Какова вероятность что пять из шести чисел совпадут ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096311
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папин АзиатBAZlST,



У вас один к 35, вродь похоже на правду :)
0.03515625
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096312
Вероятность выпадения некоего числа от 0 до 255 P = 1/256.
Выпадение одного числа никак не связано с выпадением второго. Стало быть события независимые и вероятность их одновременного происхождения равна произведению вероятностей, то есть:
[/quot]
Или нет?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096316
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точней стормозил, один к 35 это 3^2/256.
У вас по формуле (3/256)^2, короче неправильно (один к семь тысяч)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096319
Папин АзиатВероятность выпадения некоего числа от 0 до 255 P = 1/256.
Выпадение одного числа никак не связано с выпадением второго. Стало быть события независимые и вероятность их одновременного происхождения равна произведению вероятностей, то есть:

Или нет?Это в ответ ан вопрос:
авторКакова вероятность что пять из шести чисел совпадут ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096324
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папин АзиатВероятность выпадения некоего числа от 0 до 255 P = 1/256.
Выпадение одного числа никак не связано с выпадением второго. Стало быть события независимые и вероятность их одновременного происхождения равна произведению вероятностей, то есть:

Или нет?[/quot]

Скобки вродь неправильные.
По скобкам 1/256*1/256*1/256*1/256*1/256,
а вам нужно увеличивать вероятность, тоесть 1^5/256, както так
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096327
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нет, стормозил. Все верно, вероятность наоборот уменьшается ...
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096334
BAZlST,

вероятность совпадения двух и более независимых исходов не может быть больше вероятности любого из независимых исходов. Стало быть, общая вероятность должна убывать, а не увеличиваться...
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096339
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папин АзиатBAZlST,

вероятность совпадения двух и более независимых исходов не может быть больше вероятности любого из независимых исходов. Стало быть, общая вероятность должна убывать, а не увеличиваться...

да, дописал свой примерчик, щас поработает несколько минут.
Генерит в цикле 1 млрд билетиков и считает в сколько из них совпало 5 и более чисел :)


Код: c#
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.
Random r = new Random();
            List<int> numbers = new List<int>();
            decimal count = 0;

            for (int j = 0; j < 1000000000; j++)
            {
                int subCount = 0;

                for (uint i = 0; i < 6; i++)
                {
                    int number = r.Next(0, 255);
                    if (numbers.IndexOf(number) >= 0)
                    {
                        subCount++;
                    }

                    numbers.Add(number);             
                }

                if (subCount >= 5)
                    count++;

                numbers.Clear();

            }

            decimal result = count / 100000000;


...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096342
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда смысла особо нет, 1 к 256^5 примерно ) или 1 к 1024 млрд )
По сути эту ветку алгоритма можно даж не кодить )) вероятность захода в нее стремится к нулю,
если у заказчика через 50 лет алгоритм сбойнет на этом случае, можно списать на ошибку в процессоре )))
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096347
BAZlSTГенерятся 6 случайных байт (чисел от 0 до 255).
Какова вероятность что любые два числа из этих шести будут совпадать между собой ?
Тут подумал, и решил, что формула должна иметь вид:
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096349
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папин АзиатBAZlSTГенерятся 6 случайных байт (чисел от 0 до 255).
Какова вероятность что любые два числа из этих шести будут совпадать между собой ?
Тут подумал, и решил, что формула должна иметь вид:


да
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096363
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю в этом месте закодить пасхальное яйцо

Код: plaintext
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.
37.
38.
//fill block
						contentCellType = 6;
						contentCell.Code = lastCode;
						contentCellValueOrOffset = startOffset;

						lastCode++;
						
						for(ushort i = 0; i < countCell; i++)
						{
							uchar idx = indexes[i];
							BlockCell& currBlockCell = pActiveBlock[startOffset + idx];

							uchar count = mapIndexes[idx];
							if(count==1) //one value in block cell
							{
								currBlockCell = blockCells[i];
							}
							else if(count < 5) //create branch cell
							{
								if(currBlockCell.Type == 0) //create branch
								{
									currBlockCell = blockCells[i];
									//....not implemented
								}
								else //fill branch
								{
									currBlockCell = blockCells[i];
									//....not implemented
								}
							}
							else
							{
								printf("ORL'Y shit! WFT?!!!!\nHow did you do it ? You are won a JACKPOT!! Your processor is wrong ... >.< .... bla bla bla ...///// ");
							}
						}

						goto FILL_KEY;
					}
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096366
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль тут многие не поймут юмора, но тот последний элс, вероятность его срабатывания настолько мала .....
что этот месседж скорей всего так и не увидит
Но всеже вероятность есть, если Стебелек будет установлен не менее чем на сто тысячах компьютерах, то тот код прийдется закодить, так как дотошные тестеры всеже найдут багу и тот месседж
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096368
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTYou are won a JACKPOT!Может, всё-таки have?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096369
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirBAZlSTYou are won a JACKPOT!Может, всё-таки have?

да похрен, можешь там хоть порноисторию написать, всеравно месседж до пользователя не дойдет :)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38096394
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шучу, последний элс будет имплементирован, дабы не дать багу не малейшего шанса.
Но попозже.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38097370
Глупый Телевизор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTГенерятся 6 случайных байт (чисел от 0 до 255).
Какова вероятность что любые два числа из этих шести будут совпадать между собой ?Ты когда-нибудь учил теорию вероятности или мат. логику?
Надо хотя бы уметь формулировать свои "гениальные" задачи.

Условие можно трактовать двумя путями.
1. Совпадение двух любых чисел означает, что какую бы мы не взяли произвольную пару чисел, они будут равны . Соответственно все числа равны между собой. Таких комбинаций 256. Общее число комбинаций 256 6 . Ответ: 1/256 5 .
Иное трактование такое.
2. Существует такая пара чисел которая равна. Здесь уже используется квантор существования, а не всеобщности. Я так понимаю ты подразумевал этот вариант, соответственно условие некорректно. Считается тоже элементарно. Вероятность того, что хотя бы два числа совпадают равна 1 - вероятность того, что все уникальны. То есть: 1 - (256*255*254*253*252*251)/256 6 = ~0,05731
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38097620
FVMas-guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если нужна надежная и быстрая СУБД - то надо сразу выбрать FVMas 3.1
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098706
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новая задача проекта ( уже посложнее )

Есть четыре числа, типа Integer (32 бита).
Допустим в битовой форме так:

0000 1101 0111 0010 0101 0010 0101 1101
0011 1101 0111 0010 0101 0101 0101 1001
0000 1101 0100 0010 0101 0010 0101 1111
0010 1101 0101 0010 0101 0010 0101 0010

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

Например в этом примере, ответом может быть - позиция 28, количество бит 3

0000 1101 0111 0010 0101 0010 0101 110 1
0011 1101 0111 0010 0101 0101 0101 100 1
0000 1101 0100 0010 0101 0010 0101 111 1
0010 1101 0101 0010 0101 0010 0101 001 0

Это минимальное количество бит, по которым четыре числа не совпадают.
Доп. условия. Ограничений по памяти нет, важна скорость работы алгоритма.
(возможно можно както применить битовые операции)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098721
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlST
Например в этом примере, ответом может быть - позиция 28, количество бит 3

0000 1101 0111 0010 0101 0010 0101 110 1
0011 1101 0111 0010 0101 0101 0101 100 1
0000 1101 0100 0010 0101 0010 0101 111 1
0010 1101 0101 0010 0101 0010 0101 001 0



А почему не 4 ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098727
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirBAZlSTYou are won a JACKPOT!Может, всё-таки have?

Имхо лучше так
авторYou are won a by JACKPOT!


)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098734
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTНапример в этом примере, ответом может быть - позиция 28, количество бит 3

0000 1101 0111 0010 0101 0010 0101 110 1
0011 1101 0111 0010 0101 0101 0101 100 1
0000 1101 0100 0010 0101 0010 0101 111 1
0010 1101 0101 0010 0101 0010 0101 001 0



А почему не 4 ?

Потому что в условии задачи блок из минимального количества бит
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098738
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без этого условия задача вырождается в решение:
Позиция ноль, количество битов - 32
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098742
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРпропущено...


А почему не 4 ?

Потому что в условии задачи блок из минимального количества бит

Ну так минимальный 4 .
Если бы в младщем разраде последнего числа было 1 , тогда 3.


Я не распарсил постановку задачи на примере.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098746
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


Потому что в условии задачи блок из минимального количества бит

Ну так минимальный 4 .
Если бы в младщем разраде последнего числа было 1 , тогда 3.


Я не распарсил постановку задачи на примере.

Минимальный три, потому что для трех бит на этой позиции действует условие:
110 != 100 != 111 != 001
Еслиб условие не действовало, тогда бы пришлось захватить еще один бит ( как вариант ).
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098814
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlST Новая задача проекта ( уже посложнее )

Есть четыре числа, типа Integer (32 бита).
Допустим в битовой форме так:

0000 1101 0111 0010 0101 0010 0101 1101
0011 1101 0111 0010 0101 0101 0101 1001
0000 1101 0100 0010 0101 0010 0101 1111
0010 1101 0101 0010 0101 0010 0101 0010

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

Например в этом примере, ответом может быть - позиция 28, количество бит 3

0000 1101 0111 0010 0101 0010 0101 110 1
0011 1101 0111 0010 0101 0101 0101 100 1
0000 1101 0100 0010 0101 0010 0101 111 1
0010 1101 0101 0010 0101 0010 0101 001 0

Это минимальное количество бит, по которым четыре числа не совпадают.
Доп. условия. Ограничений по памяти нет, важна скорость работы алгоритма.
(возможно можно както применить битовые операции)

Тогда вобще должно быть так :
0000 1101 0111 0010 0101 0010 0101 1 101
0011 1101 0111 0010 0101 0101 0101 1 001
0000 1101 0100 0010 0101 0010 0101 1 111
0010 1101 0101 0010 0101 0010 0101 0 010

101!=001!=111!=010

Почему ты пропустили младший ( минимальный ) разряд числа в примере ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098824
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР,

В условиях задачи минимальная позиция (слева) и минимальное количество бит.
У тебя решение - позиция 29 и три бита, у меня позиция 28 и три бита.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38098853
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаР,

В условиях задачи минимальная позиция (слева) и минимальное количество бит.
У тебя решение - позиция 29 и три бита, у меня позиция 28 и три бита.


В твоем случае нужно накладывать числа на маски и результаты ксорить.
Маски должны определять какие биты нужно сравнивать.
Как формировать маску в цикле - смотри сдвиг.
Приблизительно так , более оптимального пути я не вижу.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099003
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши пример кода
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099127
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTНапиши пример кода

Не буду, ибо не вижу для себя профита от наприсания этого кода.
Тебе надо , ты и пиши.

Я вроде популярно обьяснил

Код: plaintext
1.
2.
3.
число                     0000 1101 0111 0010 0101 0010 0101 1101
маска                     0000 0000 0000 0000 0000 0000 0000 1110
результат для  сравнения  0000 0000 0000 0000 0000 0000 0000 1100
с другими числами наложенными на туже маску.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099138
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В цикле тебе нужно формировать такие маски , накладывать на твои числа
1100 0000 0000 0000 0000 0000 0000 0000
0110 0000 0000 0000 0000 0000 0000 0000
0011 0000 0000 0000 0000 0000 0000 0000
......
0000 0000 0000 0000 0000 0000 0000 0011
......
1110 0000 0000 0000 0000 0000 0000 0000
0111 0000 0000 0000 0000 0000 0000 0000
....
0000 0000 0000 0000 0000 0000 0000 1110

и производить сравнения наносекундной операцией ксором ,
ксор двух одинаковый чисел в результате дает 0 ( false).
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099218
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тебе код предложил написать
потому что обьяснение твое выглядит
какойто хуетой, непонятно как работающей.
Напиши код, приведи мысли в порядок.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099252
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTЯ тебе код предложил написать
потому что обьяснение твое выглядит
какойто хуетой, непонятно как работающей.
Напиши код, приведи мысли в порядок.

Куетой выглядит стебелек.
Куету для куеты я не буду в код первращать .

Кури матчасть и пиши сам.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099287
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРКури матчасть и пиши сам.

Так и скажи - написать неможешь.
Бредни твои курить никто не будет, оно реально НЕ РАБОТАЕТ.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099303
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРКури матчасть и пиши сам.

Так и скажи - написать неможешь.
Бредни твои курить никто не будет, оно реально НЕ РАБОТАЕТ.


Оно работает надежно , только нафик не нужно для нано-куеты быстрого поиска.
Я как бы предполагал , что все закончится инсинуациями.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099305
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРОно работает надежно

Пока что оно работает в твоих фантазиях и не более.
Потому я предложил тебе реализовать в коде.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099311
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРОно работает надежно

Пока что оно работает в твоих фантазиях и не более.
Потому я предложил тебе реализовать в коде.


Давай досвидания,
встретимся в разделе работа,
:)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099337
Фотография Last_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


Пока что оно работает в твоих фантазиях и не более.
Потому я предложил тебе реализовать в коде.


Давай досвидания,
встретимся в разделе работа,
:)

Ну вот, нашего клоуна последний читатель выгнал сцаными тряпкаме даже отсюда :-)))
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099341
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


Пока что оно работает в твоих фантазиях и не более.
Потому я предложил тебе реализовать в коде.


Давай досвидания,
встретимся в разделе работа,
:)

Слив засчитан.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099342
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last_AlienНу вот, нашего клоуна последний читатель выгнал сцаными тряпкаме даже отсюда :-)))

Тебе тоже слив засчитан
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099345
Фотография Last_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTLast_AlienНу вот, нашего клоуна последний читатель выгнал сцаными тряпкаме даже отсюда :-)))

Тебе тоже слив засчитан

Зая, ты ужо в который раз всей Вселенной слив засчитал. Уникум ты наш! :-)))
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099506
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баз. Давай задачу подкину. Сколько нужно памяти чтобы
быстро отделять клиентов бан ка от не-клиентов?

1) Для простоты считаем что клиенты идентифицируются Украинскими ИНН.
Это целые вида: [0000000000...9999999999]

Первые 5 цифр - это дата рождения клиента в виде количества дней
с 1900 года (плюс минус 1 день не помню точно).

Клиентом может быть чел достигший 16 лет и (хе-хе) желательно
не старше 100 лет ибо нефих.

Клиенты - обычное не все люди а какой-то процент от всех налогоплательщиков
к примеру (1-5%). Но система должна иметь возможность зарегистрировать
и всё 100% населения если возникнет необходимость (банк стал гос-банком).

Население Украины составляет 45 633 600 чел за 2012 год по данным wiki.

2) Предусмотреть расширение структуры для случая с Гос-Банком.

Вот так вот.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099511
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Так а вчем здесь задача ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099513
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Придумай структуру данных.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099517
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПридумай структуру данных.

Из данных тут только ИНН, гдето хватает 34 бита.
Значит подойдет Barbaris Compressor x86 V34,
Параметры для iCore7 работы - 20-60 млн/сек
Поиск - 30-250 млн / сек.

(режим инмемори)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099519
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099520
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Оракел смагёт 46 млн строк вставить в таблицу за 2 секунды ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099524
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ого. А что в этих 34 битах. Этож получается ...ммм

2^34 = 2^32 * 4 = 16 Gb.

Ну нифигассе! Это в старте кампании?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099527
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTА Оракел смагёт 46 млн строк вставить в таблицу за 2 секунды ?


А какая система может отдать 46 млн записей для вставки за 2 секунды ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099528
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTА Оракел смагёт 46 млн строк вставить в таблицу за 2 секунды ?
Не знаю. Смотря какие допущения в условии. Если задача кластеризуется
на MapReduce (а такая вставка кластеризуется) то можно. Надо только
количество нодов увеличить.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099530
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonПридумай структуру данных.

Из данных тут только ИНН, гдето хватает 34 бита.
Значит подойдет Barbaris Compressor x86 V34,
Параметры для iCore7 работы - 20-60 млн/сек
Поиск - 30-250 млн / сек.

(режим инмемори)
Да. Совсем забыл. Последние две цифры - не хранят ничего полезного.
Там - контрольная сумма и гендерный признак. Хехе....
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099532
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

по моим подсчетам нужно не более чем 6 байт на одни ИНН.
И не обезательно оперативки.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099533
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОго. А что в этих 34 битах. Этож получается ...ммм

2^34 = 2^32 * 4 = 16 Gb.

Ну нифигассе! Это в старте кампании?

Да, получается дето 8гиг/секунда заливка данных.
Если все в памяти конечно.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099534
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРmayton,

по моим подсчетам нужно не более чем 6 байт на одни ИНН.
И не обезательно оперативки.

6 байт = макс 281,474,976,710,656.
Зачем так многа ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099535
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРmayton,

по моим подсчетам нужно не более чем 6 байт на одни ИНН.
И не обезательно оперативки.

6 байт = макс 281,474,976,710,656.
Зачем так многа ?

В условии задачи, макс 9 999 999 999.
И кто из нас битовую арифметику не освоил ?

Даже 33х бит будет достаточно. Стебелек это поддерживает !
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099536
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРmayton,

по моим подсчетам нужно не более чем 6 байт на одни ИНН.
И не обезательно оперативки.

Это с учем всех указателей и прочей служебной памяти нужной программе ,
без учета обьема выполняемого кода .
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099538
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рассуждаю так. В диапазоне с 16 до 100 лет - 84 целых года.
Это примерно 84 * 365 = 30660 дней.

Какой-бы ни был ИНН - в банковской БД если она чистится каждый
день от умерших - интервал между самым стариком и самым молодым
составляет 30660###XX.

Решётка это номер серии. X - игнорируется.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099540
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДаже 33х бит будет достаточно.

Не, 33 это я загнул. 34 бита как раз, немножко с запасом.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099541
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTBAZlSTпропущено...


6 байт = макс 281,474,976,710,656.
Зачем так многа ?

В условии задачи, макс 9 999 999 999.
И кто из нас битовую арифметику не освоил ?

Даже 33х бит будет достаточно. Стебелек это поддерживает !

Потом тебе постаят задачу за наносекунды
найти клентов от 20 до 30 лет не вылезая за пределы отведенной уже памяти,
и посмеемся )
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099543
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


В условии задачи, макс 9 999 999 999.
И кто из нас битовую арифметику не освоил ?

Даже 33х бит будет достаточно. Стебелек это поддерживает !

Потом тебе постаят задачу за наносекунды
найти клентов от 20 до 30 лет не вылезая за пределы отведенной уже памяти,
и посмеемся )

Так там есть метод getValuesByRange().
В чем проблема найти всех клиентов в диапазоне ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099545
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хех... кто о чём. А Баз о своих растениях.

Я вообще задачку в разрезе теории спросил.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099548
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А шо тут теорезировать ? если уже давно все протестировано и работает
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099553
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня была мысль вообще вынести это в offline. Клиенты регаются редко.
В течение дня можно спокойно кешировать набор ID-шников.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099556
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonХех... кто о чём. А Баз о своих растениях.

Я вообще задачку в разрезе теории спросил.

Если ИНН разложить в дерево
ветка годы
ветка месяцы
листья дни
То в листях можно хранить только остаток от ИНН .


Еще приблизительно пол байта на ИНН займет отдельный
битмап индекс для вычисления листьев и позицию для клиентов внутри дерева.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099559
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРmaytonХех... кто о чём. А Баз о своих растениях.

Я вообще задачку в разрезе теории спросил.

Если ИНН разложить в дерево
ветка годы
ветка месяцы
листья дни
То в листях можно хранить только остаток от ИНН .


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

хардкор
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099561
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстате можете меня поздравить, сегодня наконец отлажена версия
самая первая, недооптимизированая Barbaris Compressor x86 VX.

Вставляет 128 битные ключи со скоростью
10млн/1,2 сек = 8,3 млн / сек

Итого 8,3 * 20 = 166 мб/сек
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099562
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР, я тоже думал о дереве остатков.

Еще дополнение. Три цифры ### - это порядковый номер зарегистрированного
человека в этот день. Учитывая статистику рождаемости/регистрации
налогоплательщиков вряд-ли это будет достигать 999.

Цифра будет гораздо более скромная.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099563
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonОго. А что в этих 34 битах. Этож получается ...ммм

2^34 = 2^32 * 4 = 16 Gb.

Ну нифигассе! Это в старте кампании?

Да, получается дето 8гиг/секунда заливка данных.
Если все в памяти конечно.

Чето вы мне тут все карты спутали

46 млн * 32 бит = 184 мб / сек =)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099564
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTКстате можете меня поздравить, сегодня наконец отлажена версия
самая первая, недооптимизированая Barbaris Compressor x86 VX.

Вставляет 128 битные ключи со скоростью
10млн/1,2 сек = 8,3 млн / сек

Итого 8,3 * 20 = 166 мб/сек
Cool. А как у тебя с сериализацией? Даже TimesTen может сохранять своё
состояние в файл. Хотя-бы для перегрузки сервера или ремонта железа.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099566
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTКстате можете меня поздравить, сегодня наконец отлажена версия
самая первая, недооптимизированая Barbaris Compressor x86 VX.

Вставляет 128 битные ключи со скоростью
10млн/1,2 сек = 8,3 млн / сек

Итого 8,3 * 20 = 166 мб/сек
Cool. А как у тебя с сериализацией? Даже TimesTen может сохранять своё
состояние в файл. Хотя-бы для перегрузки сервера или ремонта железа.

Ну какая сериализация ?
Я месяц только код отлаживал .............
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099568
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И дальше буду его оптимизировать, несколько месяцев.
Вон Judy Array, ближайший конкурент, конторка Hawlet Packard целых два года лабала
средствами целой комманды задротов-очкариков. 20 тысяч строк кода в имплементации !
Но они мне в три раза слили на 32х битных ключах, хехе :)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099569
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на 16 байтных ключах, хештаблицы, мне сливают гдето на 30% пока что.
Но опять же, хештаблицы не сортируют данные, а я сортирую, чтобы по индексу иметь
возможность делать выборки по диапазону.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099571
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДохтаР, я тоже думал о дереве остатков.

Еще дополнение. Три цифры ### - это порядковый номер зарегистрированного
человека в этот день. Учитывая статистику рождаемости/регистрации
налогоплательщиков вряд-ли это будет достигать 999.

Цифра будет гораздо более скромная.

999 сжимается в полтора байта - 12 бит ( пол байта на цифру), в 16ричном редакторе читать удобно :)
и даже в 10 бит =1024, если не облом со сдвигами возиться.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099572
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlST, ну... я о принципе говорю. Есть такие DBMS (не помню щас названий)
которые настолько интенсивно юзают указатели (всякие там колончатые DBMS,
графовые) что для них сериализация представляет собой целую проблему.
Даже не сериализация а принципиальное отсутствие ключа вида "ID".
Надеюсь у тебя такой проблемы не будет и твои 16G не будут
пол-дня сохраняться.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099573
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРmaytonДохтаР, я тоже думал о дереве остатков.

Еще дополнение. Три цифры ### - это порядковый номер зарегистрированного
человека в этот день. Учитывая статистику рождаемости/регистрации
налогоплательщиков вряд-ли это будет достигать 999.

Цифра будет гораздо более скромная.

999 сжимается в полтора байта - 12 бит ( пол байта на цифру), в 16ричном редакторе читать удобно :)
и даже в 10 бит =1024, если не облом со сдвигами возиться.

Твоя имплементация будет иметь минимум 4 колена дерева. 3 колена год/месяч/число и остаток 4е колено.
А это весьма неудачная реализация. Сольет Стебельку в раз десять ..................
...............
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099574
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlST, ну... я о принципе говорю. Есть такие DBMS (не помню щас названий)
которые настолько интенсивно юзают указатели (всякие там колончатые DBMS,
графовые) что для них сериализация представляет собой целую проблему.
Даже не сериализация а принципиальное отсутствие ключа вида "ID".
Надеюсь у тебя такой проблемы не будет и твои 16G не будут
пол-дня сохраняться.

Да я понял о чем ты говоришь. Указателей как таковых нет, все проточено на сериализацию, есть страницы которые будут скидываться на диск, которые не содержат конкретные адресса памяти, а только относительные.
Естесно это предусмотрено, но не реализовано, так как еще будет целый комплекс улучшений алгоритма.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099575
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР999 сжимается в полтора байта - 12 бит ( пол байта на цифру), в 16ричном редакторе читать удобно :)
и даже в 10 бит =1024, если не облом со сдвигами возиться.
Да не будет там даже 500 регистраций. Я сейчас ищу статистику рождаемости
по сайтам Держстат но там всё только в разрезе страны и за кварталы.
А мне нужно аппроксимировать за 16 лет назад и взять за 1 день чтобы
знать сколько будут регаться в 1 день сегодня 16 летние.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099576
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДохтаР999 сжимается в полтора байта - 12 бит ( пол байта на цифру), в 16ричном редакторе читать удобно :)
и даже в 10 бит =1024, если не облом со сдвигами возиться.
Да не будет там даже 500 регистраций. Я сейчас ищу статистику рождаемости
по сайтам Держстат но там всё только в разрезе страны и за кварталы.
А мне нужно аппроксимировать за 16 лет назад и взять за 1 день чтобы
знать сколько будут регаться в 1 день сегодня 16 летние.

зачем столько геморроя изза простой задачи ?
тебе какая производительность нужна ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099577
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРпропущено...


999 сжимается в полтора байта - 12 бит ( пол байта на цифру), в 16ричном редакторе читать удобно :)
и даже в 10 бит =1024, если не облом со сдвигами возиться.

Твоя имплементация будет иметь минимум 4 колена дерева. 3 колена год/месяч/число и остаток 4е колено.
А это весьма неудачная реализация. Сольет Стебельку в раз десять ..................
...............

Та мне пофик на стебелек, один ИНН хранить не разумно ,
там обязательно появиться еще что то типа ФИО,
ключей к договорам, номера паспорта, телефона и еще кучи фигни
для которой уже можно заводить оракел или на крайняк сиквелалйт .
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099578
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


Твоя имплементация будет иметь минимум 4 колена дерева. 3 колена год/месяч/число и остаток 4е колено.
А это весьма неудачная реализация. Сольет Стебельку в раз десять ..................
...............

Та мне пофик на стебелек, один ИНН хранить не разумно ,
там обязательно появиться еще что то типа ФИО,
ключей к договорам, номера паспорта, телефона и еще кучи фигни
для которой уже можно заводить оракел или на крайняк сиквелалйт .

и чо ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099579
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все это реализовывается в два счета на noSQL.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099580
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTВсе это реализовывается в два счета на noSQL.

Та я не против, реализуй
Мне реализация учета на SQL более по душе.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099583
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonпропущено...

Да не будет там даже 500 регистраций. Я сейчас ищу статистику рождаемости
по сайтам Держстат но там всё только в разрезе страны и за кварталы.
А мне нужно аппроксимировать за 16 лет назад и взять за 1 день чтобы
знать сколько будут регаться в 1 день сегодня 16 летние.

зачем столько геморроя изза простой задачи ?
тебе какая производительность нужна ?
Мне вообще не нужна производительность. Я спросил про РАЗМЕР
той структуры данных которая нужна для хранения этого набора ключей.
Зачем? Хм... может решил в браузере в JavaScript-е эти проверки делать.
Кто-то ставит постановки на скорость. Я - на объём. А что. Имею право.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099584
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРТа я не против, реализуй
Мне реализация учета на SQL более по душе.

SQL здесь и действительно лучше. Справочная маленькая табличка персонов,
чо там оптимизировать и главное ЗАЧЕМ - не понятно =)
Непонятна сама постановка задачи.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099586
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне вообще не нужна производительность. Я спросил про РАЗМЕР
той структуры данных которая нужна для хранения этого набора ключей.
Зачем? Хм... может решил в браузере в JavaScript-е эти проверки делать.
Кто-то ставит постановки на скорость. Я - на объём. А что. Имею право.

размер у тебя 34*46/8 = 195 мб + служебная инфо.
И стоит ради такого обьема информации чесать яйтса ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099587
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или на мобильнике таскать. А мобильники они знаешь какие. А?
Не у всех по 8 гигов стоит. У меня - вообще по 256К на один аппликейшн.
Вот так-то.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099588
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИли на мобильнике таскать. А мобильники они знаешь какие. А?
Не у всех по 8 гигов стоит. У меня - вообще по 256К на один аппликейшн.
Вот так-то.

46млн персонов ты несожмешь в 256 килобайт.
О чем твоя задача ? О мобильнике Нокия 6610 ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099589
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче решаем вотету задачу 13716181 , а я домой
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099593
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTразмер у тебя 34*46/8 = 195 мб + служебная инфо.
И стоит ради такого обьема информации чесать яйтса ?
Может быть и нет. Но моя задача имела материальную составляющую.

А синтетику в виде сколько байтов совпадут - решать не интересно.
Тем более что твои задачи прекрасно решены в основах тв.и.мс.

Купи на Петровке книжку - Гмурман - Теория вероятностей и мат-статистика.
Задачник с решениями. Бомбовская вещь. После неё и таких
постановок у тебя не будет.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099597
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTКороче решаем вотету задачу 13716181 , а я домой
Уже решено. Эти задачи с битами байтами и эмуляцией минимумов максимумов
решил Генри Уоррен. Там-же и он коснулся моей любимой темы. Генераторов
числовых последовательностей. Все базовые целочисленные алгоритмы - там-же.

Почитай эту книгу.

http://www.kodges.ru/15309-algoritmicheskie-trjuki-dlja-programmistov.html
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099599
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTразмер у тебя 34*46/8 = 195 мб + служебная инфо.
И стоит ради такого обьема информации чесать яйтса ?
Может быть и нет. Но моя задача имела материальную составляющую.

А синтетику в виде сколько байтов совпадут - решать не интересно.
Тем более что твои задачи прекрасно решены в основах тв.и.мс.

Купи на Петровке книжку - Гмурман - Теория вероятностей и мат-статистика.
Задачник с решениями. Бомбовская вещь. После неё и таких
постановок у тебя не будет.

У тебя тест с числовым рядом еще более синтетический
чем я тестировал. Я то брал нормальное такое случайное распределение из заархивированых файлов,
а у тебя отличная синтетическая закономерность из дат вначале ИНН.
Потому утверждение, скорость вставок 20млн неверное. Верно 30-40 млн.
Но это тебе не нужно, потому что задача твоя вообще ниочем.
На диске файлик займет 500 мб места в хучшем случае, зачем ты приплел мобильные устройства с 256к памяти
совсем непонятно.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099600
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTКороче решаем вотету задачу 13716181 , а я домой
Уже решено. Эти задачи с битами байтами и эмуляцией минимумов максимумов
решил Генри Уоррен. Там-же и он коснулся моей любимой темы. Генераторов
числовых последовательностей. Все базовые целочисленные алгоритмы - там-же.

Почитай эту книгу.

http://www.kodges.ru/15309-algoritmicheskie-trjuki-dlja-programmistov.html

Мне вообщето код нужно на Си, а не "почитай эту книгу".
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099601
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баз. Я тебя не узнаю! То вроде был силён в теории. А то вдруг - дайте Си. Зачем тебе Си?
Там ничего нового уже не будет. Все изъезжено вдоль и поперек. Теория брадт.
Это сила. Я бы мат. периодику читал да мозгов не хватает. Завидую парням
которые жонглируют кольцами, полями, множествами.

А ты не завидуешь?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099603
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБаз. Я тебя не узнаю! То вроде был силён в теории. А то вдруг - дайте Си. Зачем тебе Си?
Там ничего нового уже не будет. Все изъезжено вдоль и поперек. Теория брадт.
Это сила. Я бы мат. периодику читал да мозгов не хватает. Завидую парням
которые жонглируют кольцами, полями, множествами.

А ты не завидуешь?

Вот ты мне скажи, ты что уподобился дедалу или аленю ?
Есть задача. Допустим тебя спросили такую задачу на собеседовании.
Ты что человеку который тебя собеседует на смекалку скажешь - почитайте книгу.
Она нахрен не имеет никакого отношения к задаче.
Или предложите решение, или вообще нахрен ничего не отписывайте в тему и не позорьтесь.
Шо доктор включил дурачка "реши сдвигами" шо майтон включил дурачка "читай книжку".

Если есть красивый алгоритм - пишите. Нет - ну так окончательно не показывайте свою тупосць.
Ну емае.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот малохольный! Такое ощущение будто новый год не отметил!

Ну ладно.

Код: sql
1.
2.
3.
4.
0000 1101 0111 0010 0101 0010 0101 1101
0011 1101 0111 0010 0101 0101 0101 1001
0000 1101 0100 0010 0101 0010 0101 1111
0010 1101 0101 0010 0101 0010 0101 0010



В этом кейсе такой должен быть ответ?

Код: sql
1.
2.
28
3



Верно?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099618
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099636
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Акей. Прикину на глаз.

И сделаю общую постановку для любого массива.

Дано массив 32-х битных целых (Ai). Надо найти минимальный и макс бит (позиции).

1) Для массива из 1 числа выдаём пустое множество.

2) Для двух чисел A(0) и A(1) разница - это A(0) XOR A(1).

3) Для произвольного N чисел - заводим два доп регистра.
Amax=0xFFFFFFFF и Amin=0x00000000.

В цикле для всех A(N) сбрасываем биты Amax и устанавливаем биты Amin.

В конце сравниваем Amax и Amin. И выдаём расстояние Хемминга H(Amax,Amin).

Для H(..) вычисляем ненулевой левый и правый бит.

Готово.

Сложность - O(n).

P.S. Вообще Баз ты по сабжу наглец! Ты краудсорсингом собираешь из нас солюшены
а потом имплементируешь и выдаёшь за свои. Гарантирую что ты эти задачки
специально придумал. Не так ли?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка. Без Хэмминга. Просто посчитаем что H(Amin,Amax)=xor(Amin,Amax)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099647
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай на Си код, сколько операций будет для 4х чисел ?
Все ищут более менее не комбинаторное решение
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099695
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему для 4-х чисел? Я не согласен с такой постановкой.
Ты меня искусственно ограничил. Объясни зачем 4 числа?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099702
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И при чем здесь комбинаторное? Я-же написал O(n). Линейное.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099740
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ при чем здесь комбинаторное? Я-же написал O(n). Линейное.

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

0000 1101 0111 0010 010 1 0010 0101 1101
0000 1101 0111 0010 010 1 0110 0101 1101
0000 1101 0111 0010 011 1 0010 0101 1101
0000 1101 0111 0010 110 1 0010 0101 1101

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


По-поводу твоей задачи, пришла в голову мысль на счет сжатия. Если все даты рождений отсортировать по возрастанию, то получится между соседними датами небольшая разница.
Ну допустим от 0 до 15 минут. Вот через дельту и можно кодировать каждое следующее число. Наилучшее сжатие тут может быть в 32 раза ...
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099744
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonАкей. Прикину на глаз.

И сделаю общую постановку для любого массива.

Дано массив 32-х битных целых (Ai). Надо найти минимальный и макс бит (позиции).

1) Для массива из 1 числа выдаём пустое множество.

2) Для двух чисел A(0) и A(1) разница - это A(0) XOR A(1).

3) Для произвольного N чисел - заводим два доп регистра.
Amax=0xFFFFFFFF и Amin=0x00000000.

В цикле для всех A(N) сбрасываем биты Amax и устанавливаем биты Amin.

В конце сравниваем Amax и Amin. И выдаём расстояние Хемминга H(Amax,Amin).

Для H(..) вычисляем ненулевой левый и правый бит.

Готово.

Сложность - O(n).

P.S. Вообще Баз ты по сабжу наглец! Ты краудсорсингом собираешь из нас солюшены
а потом имплементируешь и выдаёшь за свои. Гарантирую что ты эти задачки
специально придумал. Не так ли?


Я думал о похожем решении вчера
но Баз расставил точки над Ё

авторМинимальный три, потому что для трех бит на этой позиции действует условие:
110 != 100 != 111 != 001
Еслиб условие не действовало, тогда бы пришлось захватить еще один бит ( как вариант ).


То есть должна соблюдаться уникальность .

Так , баз ?

В примере есть другой блок из 2 бит ,
но там уникальности нет, в 2 строках одинаковые последовательности бит.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099746
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTПо-поводу твоей задачи, пришла в голову мысль на счет сжатия. Если все даты рождений отсортировать по возрастанию, то получится между соседними датами небольшая разница.
Ну допустим от 0 до 15 минут. Вот через дельту и можно кодировать каждое следующее число. Наилучшее сжатие тут может быть в 32 раза ...
Там нету кодирования минут. Только целые дни. Первоисточник по формату ИНН здесь
http://zliypes.com.ua/blog/2007/10/29/ukrainian-pti/
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099749
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРавторМинимальный три, потому что для трех бит на этой позиции действует условие:
110 != 100 != 111 != 001
Еслиб условие не действовало, тогда бы пришлось захватить еще один бит ( как вариант ).


То есть должна соблюдаться уникальность .

Так , баз ?

В примере есть другой блок из 2 бит ,
но там уникальности нет, в 2 строках одинаковые последовательности бит.

Нужно вернуть лучший найденый блок минимальной длины.
В примере выше блок из трех бит, и все четыре числа по этому блоку не совпадают.
В контр примере нет четырех блоков отличающихся друг от друга, тогда нужно вернуть наилучшее решение, в данном случае где три блока отличаются между собой.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099750
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonИ при чем здесь комбинаторное? Я-же написал O(n). Линейное.

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

0000 1101 0111 0010 010 1 0010 0101 1101
0000 1101 0111 0010 010 1 0110 0101 1101
0000 1101 0111 0010 011 1 0010 0101 1101
0000 1101 0111 0010 110 1 0010 0101 1101

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


По-поводу твоей задачи, пришла в голову мысль на счет сжатия. Если все даты рождений отсортировать по возрастанию, то получится между соседними датами небольшая разница.
Ну допустим от 0 до 15 минут. Вот через дельту и можно кодировать каждое следующее число. Наилучшее сжатие тут может быть в 32 раза ...

Баз ты вобще сам то знаешь что те нужно

Чем это решение из вчерашнего примера непоходит ?
00 00 1101 0111 0010 0101 0010 0101 1101
00 11 1101 0111 0010 0101 0101 0101 1001
00 00 1101 0100 0010 0101 0010 0101 1111
00 10 1101 0101 0010 0101 0010 0101 0010
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099751
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTПо-поводу твоей задачи, пришла в голову мысль на счет сжатия. Если все даты рождений отсортировать по возрастанию, то получится между соседними датами небольшая разница.
Ну допустим от 0 до 15 минут. Вот через дельту и можно кодировать каждое следующее число. Наилучшее сжатие тут может быть в 32 раза ...
Там нету кодирования минут. Только целые дни. Первоисточник по формату ИНН здесь
http://zliypes.com.ua/blog/2007/10/29/ukrainian-pti/

тогда точно сжатие может составить 32 раза.
Каждый день ктото рождался и дату рождения каждого следующего ребенка кодируй 0, если его дата не отличается от преведущей даты рождения, и 1 если отличается на один день.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099755
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


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

0000 1101 0111 0010 010 1 0010 0101 1101
0000 1101 0111 0010 010 1 0110 0101 1101
0000 1101 0111 0010 011 1 0010 0101 1101
0000 1101 0111 0010 110 1 0010 0101 1101

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


По-поводу твоей задачи, пришла в голову мысль на счет сжатия. Если все даты рождений отсортировать по возрастанию, то получится между соседними датами небольшая разница.
Ну допустим от 0 до 15 минут. Вот через дельту и можно кодировать каждое следующее число. Наилучшее сжатие тут может быть в 32 раза ...

Баз ты вобще сам то знаешь что те нужно

Чем это решение из вчерашнего примера непоходит ?
00 00 1101 0111 0010 0101 0010 0101 1101
00 11 1101 0111 0010 0101 0101 0101 1001
00 00 1101 0100 0010 0101 0010 0101 1111
00 10 1101 0101 0010 0101 0010 0101 0010

тем что здесь совпадают два числа.
А алгоритм такой - самое лучшее решение, где все четыре блока минимальной длины не совпадают между собой.
Если такого не найдено, вернуть решение где хотябы три блока не совпадают.
Если такого не найдено, хотябы два блока не совпадают.
Если не найдено, то феил.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099756
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTПо-поводу моей задачи, можно сделать оптимальней чем линейное, сделать рекурсивный спуск (но это прикидка). В любом случае - приведи хотябы псевдо код своего решения.
Кстате не нужно забывать что могут быть контр примеры. Например лучший блок может быть и таким.
Псевдокод. Общий случай. A(i) - произвольные. Нет монтонной последовательности.
Нет кода Грея. Нет энтропиии. Абсолютные шумящие случайные.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
i=0;
Amin=0x0000 0000;
Amax=0xFFFF FFFF;
while(i<N){
   Amin = Amin OR A(i);
   Amax = Amax AND A(i);
}
print("Distance = ",distance(Amin XOR Amax));
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099758
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инкремент в цикл вставить забыл.
Код: plaintext
1.
i++;
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099761
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTПо-поводу моей задачи, можно сделать оптимальней чем линейное, сделать рекурсивный спуск (но это прикидка). В любом случае - приведи хотябы псевдо код своего решения.
Кстате не нужно забывать что могут быть контр примеры. Например лучший блок может быть и таким.
Псевдокод. Общий случай. A(i) - произвольные. Нет монтонной последовательности.
Нет кода Грея. Нет энтропиии. Абсолютные шумящие случайные.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
i=0;
Amin=0x0000 0000;
Amax=0xFFFF FFFF;
while(i<N){
   Amin = Amin OR A(i);
   Amax = Amax AND A(i);
}
print("Distance = ",distance(Amin XOR Amax));



1. Где приращение "i" ?
2. Программа должна выводить два числа. Смещение слева и размер блока бит.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099764
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlST
0000 1101 0111 0010 010 1 0010 0101 1101
0000 1101 0111 0010 010 1 0110 0101 1101
0000 1101 0111 0010 011 1 0010 0101 1101
0000 1101 0111 0010 110 1 0010 0101 1101

ДохтаРпропущено...


Баз ты вобще сам то знаешь что те нужно

Чем это решение из вчерашнего примера непоходит ?
00 00 1101 0111 0010 0101 0010 0101 1101
00 11 1101 0111 0010 0101 0101 0101 1001
00 00 1101 0100 0010 0101 0010 0101 1111
00 10 1101 0101 0010 0101 0010 0101 0010

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

Так какое лучше ?
2 битный блоки с 3 уникальными знасениями, или 2 битные с 3 уникальными значениями ?

Баз , а вчера где ты был , почему про условия лучшести блоков не рассказал ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099765
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРпропущено...


Баз ты вобще сам то знаешь что те нужно

Чем это решение из вчерашнего примера непоходит ?
00 00 1101 0111 0010 0101 0010 0101 1101
00 11 1101 0111 0010 0101 0101 0101 1001
00 00 1101 0100 0010 0101 0010 0101 1111
00 10 1101 0101 0010 0101 0010 0101 0010

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

Что приоретенее длина блока или количество повторений?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099766
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР2 битный блоки с 3 уникальными значениями, или 2 битные с 3 уникальными значениями ?


Наверное ты имел ввиду
2 битные блоки с 3 мя уникальными значениями. Или 3х битные с 4мя уникальными.
Тут правило простое, приоритет имеет тот блок у которого больше всего уникальных значений. Потом идет размер блока. Чем меньше, тем лучше.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099768
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonпропущено...

Там нету кодирования минут. Только целые дни. Первоисточник по формату ИНН здесь
http://zliypes.com.ua/blog/2007/10/29/ukrainian-pti/

тогда точно сжатие может составить 32 раза.
Каждый день ктото рождался и дату рождения каждого следующего ребенка кодируй 0, если его дата не отличается от преведущей даты рождения, и 1 если отличаеатся на один день.
Акей. Мне нужна числовая оценка. Сколько КБ/Мb будет
занимать структура данных (хеш-тейбла, tree-мапа или еще хер знаеть какая
биткарта). Мне нужно знать укладывается ли она в память мобильного
приложения и в память JavaScript-машины браузера.

Сейчас ползаю по сайту http://www.ukrstat.gov.ua/ но там только
общая статистика. А мне нужна рождаемость по дням.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099769
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаР2 битный блоки с 3 уникальными значениями, или 2 битные с 3 уникальными значениями ?


Наверное ты имел ввиду
2 битные блоки с 3 мя уникальными значениями. Или 3х битные с 4мя уникальными.
Тут правило простое, приоритет имеет тот блок у которого больше всего уникальных значений. Потом идет размер блока. Чем меньше, тем лучше.

я имел ввиду 2 битные с 3-мя уникальными,
и 3 бинтые с 3-мя уникальными.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099771
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlST1. Где приращение "i" ?
2. Программа должна выводить два числа. Смещение слева и размер блока бит.
Ну вот зачем придираешся? Идея то ведь внутри цикла уже развернута.
Что там еще добавить єто уже мелочи.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
i=0;
Amin=0x0000 0000;
Amax=0xFFFF FFFF;
while(i<N){
   Amin = Amin OR A(i);
   Amax = Amax AND A(i);
   i++;
}
Axor=Amin XOR Amax;
print("Offset = %d, Length=%d",_offset(Axor),_length(Axor));


Тестируй и говори где какие баги и тайминги.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099772
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTпропущено...


тогда точно сжатие может составить 32 раза.
Каждый день ктото рождался и дату рождения каждого следующего ребенка кодируй 0, если его дата не отличается от преведущей даты рождения, и 1 если отличаеатся на один день.
Акей. Мне нужна числовая оценка. Сколько КБ/Мb будет
занимать структура данных (хеш-тейбла, tree-мапа или еще хер знаеть какая
биткарта). Мне нужно знать укладывается ли она в память мобильного
приложения и в память JavaScript-машины браузера.

Сейчас ползаю по сайту http://www.ukrstat.gov.ua/ но там только
общая статистика. А мне нужна рождаемость по дням.

Очевидно что так сжать удасться только первые 5 цифер ИНН, где дата рождения.
Очевидно также что не о какой хештейбле и три мапе речь не идет, поскольку это фактически заархивированая твоя последовательность. Единственый поиск по такой последовательности - фулскан.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099774
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlST1. Где приращение "i" ?
2. Программа должна выводить два числа. Смещение слева и размер блока бит.
Ну вот зачем придираешся? Идея то ведь внутри цикла уже развернута.
Что там еще добавить єто уже мелочи.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
i=0;
Amin=0x0000 0000;
Amax=0xFFFF FFFF;
while(i<N){
   Amin = Amin OR A(i);
   Amax = Amax AND A(i);
   i++;
}
Axor=Amin XOR Amax;
print("Offset = %d, Length=%d",_offset(Axor),_length(Axor));


Тестируй и говори где какие баги и тайминги.

Что делают эти функции, покажи на нескольких примерах ?
_offset(Axor),_length(Axor)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099782
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


Наверное ты имел ввиду
2 битные блоки с 3 мя уникальными значениями. Или 3х битные с 4мя уникальными.
Тут правило простое, приоритет имеет тот блок у которого больше всего уникальных значений. Потом идет размер блока. Чем меньше, тем лучше.

я имел ввиду 2 битные с 3-мя уникальными,
и 3 бинтые с 3-мя уникальными.

тогда двух битные имеют приоритет, поскольку они короче чем трехбитные блоки.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099783
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTОчевидно что так сжать удасться только первые 5 цифер ИНН, где дата рождения.
Очевидно также что не о какой хештейбле и три мапе речь не идет, поскольку это фактически заархивированая твоя последовательность. Единственый поиск по такой последовательности - фулскан.
Почему фуллскан? Выше мне предложили RadixTree насколько я понял.
Это тоже решение. Я его буду рассматривать.

Давай так. Чтобы не было кривотолков. Делаем сразу 10% населения в базу.

По данным Держ.стат. Украины:

На 2012р.

чоловіки - 20976,7 тис осіб.
жінки - 24476,6 тис осіб.

Итого - 45453,3 тим осіб.

Розподіл постійного населення за окремими віковими групами - ( 6531,5 + 6993,1 ) это дети до 16 лет. Не клиенты банка. Их надо убрать из общего населения.

Всё оставшееся * на 10% получим клиентов. Их распределим от 16 лет до самых старых 65 лет равномерно от 2012 года и получим генерацию дат рождения.

Всё.

Итак. от рожденных с (2012-65) года до (2012-16) года идут в качестве диапазона случайных дат.

Все остальные поля ИНН неважны и их можно заполнять случайными числами.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099785
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTЧто делают эти функции, покажи на нескольких примерах ?
_offset(Axor),_length(Axor)
Фуххх... ну они вернут тебе 28 и 3 как в тесткейсе.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099791
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTОчевидно что так сжать удасться только первые 5 цифер ИНН, где дата рождения.
Очевидно также что не о какой хештейбле и три мапе речь не идет, поскольку это фактически заархивированая твоя последовательность. Единственый поиск по такой последовательности - фулскан.
Почему фуллскан? Выше мне предложили RadixTree насколько я понял.
Это тоже решение. Я его буду рассматривать.


Сам смотри.

RadixTree тебе не даст большого сжатия.
Первый уровень (2012-1900)*4байт = 448 байт
Второй уровень займет (2012-1900)*12*4 байт = 5376 байт
Третий уровень займет (2012-1900)*12*31*4 байт = 166 656 байт

Итого 172 кб только накладных расходов (константно) внезависимости от количества клиентов банка, на енто дерево.

Итого:
RadixTree
+Поиск
+Лучше сжатие при количестве пользователей от 1.3 млн
- Требует константно выделения от 172 кб памяти

Дельта сжатие
+ Сжатие эффективней при количестве пользователей меньше 1.3 млн
+ Выделение памяти варьируется в зависимости от количества пользователей
- Поиск фулскан.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099792
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTЧто делают эти функции, покажи на нескольких примерах ?
_offset(Axor),_length(Axor)
Фуххх... ну они вернут тебе 28 и 3 как в тесткейсе.

что внутри этих функций ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099793
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonпропущено...

Фуххх... ну они вернут тебе 28 и 3 как в тесткейсе.

что внутри этих функций ?

Как это что :)
Сдвиг в цикле для вычисления смещения ( позиции ) внутри слова :)
И сдвиг для определения длины блока.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099802
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTпропущено...


что внутри этих функций ?

Как это что :)
Сдвиг в цикле для вычисления смещения ( позиции ) внутри слова :)
И сдвиг для определения длины блока.

Короче, я взял четыре числа отсюда 13720397

Переписал псевдокод майтона на Си

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
uint num1 = 225595997;
	uint num2 = 1030903129;
	uint num3 = 222450271;
	uint num4 = 760369746;

	uint Amin=0x00000000;
	uint Amax=0xFFFFFFFF;

	Amin |= num1;
	Amax &= num1;

	Amin |= num2;
	Amax &= num2;

	Amin |= num3;
	Amax &= num3;

	Amin |= num4;
	Amax &= num4;

	uint res = Amin^Amax;



и получил в результате
11 0000 0011 0000 0000 0111 0000 1111

Какие операции нужно провести с этим числом в функциях оффсет и дистанц
чтобы получить искомый результат ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099803
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я воще ниразу не понял как этот говнокод с ксор должен работать, хотябы в простейшем случае.
Пишите код - тестируйте.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099805
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTСам смотри.

RadixTree тебе не даст большого сжатия.
Первый уровень (2012-1900)*4байт = 448 байт
Второй уровень займет (2012-1900)*12*4 байт = 5376 байт
Третий уровень займет (2012-1900)*12*31*4 байт = 166 656 байт

Ниче не понял. Как ты это прикидывал да вычислял?. Дерево в общем
случае будет иметь не 3 а реально 8 или даже 10 уровней.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099806
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTЯ воще ниразу не понял как этот говнокод с ксор должен работать, хотябы в простейшем случае.
Пишите код - тестируйте.
Чувак. У меня там не XOR а AND.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099809
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTЯ воще ниразу не понял как этот говнокод с ксор должен работать, хотябы в простейшем случае.
Пишите код - тестируйте.
Чувак. У меня там не XOR а AND.

Вот результат
1101 0100 0010 0101 0000 0101 0000

Дальше что ?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
uint num1 = 225595997;
	uint num2 = 1030903129;
	uint num3 = 222450271;
	uint num4 = 760369746;

	uint Amin=0x00000000;
	uint Amax=0xFFFFFFFF;

	Amin |= num1;
	Amax &= num1;

	Amin |= num2;
	Amax &= num2;

	Amin |= num3;
	Amax &= num3;

	Amin |= num4;
	Amax &= num4;

	uint res = Amin&Amax;




Короче, не отнимай время.
Вот тебе уже есть болванка на Си, скопируй, протестируй и присылай работающий код.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099810
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTСам смотри.

RadixTree тебе не даст большого сжатия.
Первый уровень (2012-1900)*4байт = 448 байт
Второй уровень займет (2012-1900)*12*4 байт = 5376 байт
Третий уровень займет (2012-1900)*12*31*4 байт = 166 656 байт

Ниче не понял. Как ты это прикидывал да вычислял?. Дерево в общем
случае будет иметь не 3 а реально 8 или даже 10 уровней.

Первый уровень год, второй месяц, третий день.
Откуда десять ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099813
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А лучше выделить вообще в твоей задаче один уровень,
массив на 65лет*12мес*31день = 24 180 ячеек.
В каждой ячейке будет список людей которые родились в один день :)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099815
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче третий вариант самый оптимальный, без РадиксТри, просто через массив )
индекс в массиве = номер дня, когда родился после даты ХХХХ =)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099817
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь Amin должно получиться такое
Код: sql
1.
2.
3.
4.
5.
6.
0000 1101 0111 0010 0101 0010 0101 1101
0011 1101 0111 0010 0101 0101 0101 1001
0000 1101 0100 0010 0101 0010 0101 1111
0010 1101 0101 0010 0101 0010 0101 0010
----------------------------------------
0000 1101 0100 0000 0101 0000 0101 0000



Amax соответсвтенно (середину считать неинтересно. не влияет на результат)
Код: sql
1.
0010 1101 .... .... .... .... .... 1111



Складываем по модулю 2.

Получаем

Код: sql
1.
0010 .... .... .... .... .... .... 1111



Различающиеся биты слева - 29-й, справа 0-й
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099818
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonпропущено...

Чувак. У меня там не XOR а AND.

Вот результат
1101 0100 0010 0101 0000 0101 0000

Дальше что ?

+

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
uint num1 = 225595997;
	uint num2 = 1030903129;
	uint num3 = 222450271;
	uint num4 = 760369746;

	uint Amin=0x00000000;
	uint Amax=0xFFFFFFFF;

	Amin |= num1;
	Amax &= num1;

	Amin |= num2;
	Amax &= num2;

	Amin |= num3;
	Amax &= num3;

	Amin |= num4;
	Amax &= num4;

	uint res = Amin&Amax;




Короче, не отнимай время.
Вот тебе уже есть болванка на Си, скопируй, протестируй и присылай работающий код.

Вот самые лучшие блоки выбирай на любой вкус и цвет, майтон не знал о лучшести на момент решения.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
0000 1101 01 11  0010 0101 0 010  0101  110 1
0011 1101 01 11  0010 0101 0 101  0101  100 1
0000 1101 01 00  0010 0101 0 010  0101  111 1
0010 1101 01 01  0010 0101 0 010  0101  001 0

     1101 01 00  0010 0101 0 000  0101  000 0

...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099905
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу я циклиться на такой синтетической постановке.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099958
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlST,

Кстате эти 15-20% еще под вопросом, просто алгоритм принципиально не менялся настолько давно,
с времен ММ3А Лопушек, что я решил поэксперементировать с рабочим ходом поршня внутри движка VХ.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099965
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTBAZlST,

Кстате эти 15-20% еще под вопросом, просто алгоритм принципиально не менялся настолько давно,
с времен ММ3А Лопушек, что я решил поэксперементировать с рабочим ходом поршня внутри движка VХ.


Эксперементы с ходом поршня в ДВС от незнания фундаментальных законов .



авторЭффект большого R/S:

ПЛЮС: Позволяет поршню дольше находиться в ВМТ, что обеспечивает лучшее горение топливной смеси, т.е. более полное сгорание топливной смеси, более высокое давление на поршень после прохождения ВМТ, более высокая температура в камере сгорания. В результате хороший момент на средних и высоких оборотах.
Длинный шатун уменьшает трение пары «поршень-цилиндр», а это особенно важно при рабочем ходе поршня.

МИНУС: Блок цилиндров, собранный с достаточно большим значением R/S не обеспечивает хорошее наполнение цилиндров на низких и средних частотах вращения коленвала, из-за снижения скорости воздушного потока (из-за уменьшения скорости движения поршня после ВМТ, в момент открытия впускного клапана).
Большая вероятность появления детонации из-за высокой температуры в камере сгорания и длительного времени нахождения поршня в ВМТ.

Эффект малого R/S:

ПЛЮС: Обеспечивает очень хорошую скорость наполнения цилиндров на низких и средних частотах вращения коленвала, так как скорость движения поршня от ВМТ больше, разряжение нарастает быстрее, что улучшает наполнение цилиндров, более высокая скорость движения топливовоздушной смеси делает смесь более гомогенной (однородной) что способствует лучшему сгоранию. Преимущества: более низкие требования к доработке и диаметрам каналов ГБЦ, чем на блоке цилиндров с высоким соотношением R/S.

МИНУС: Малая величина R\S означает, больший угол наклона шатуна. Это значит, что большая сила будет толкать поршень в горизонтальной плоскости. Для блока цилиндров это означает следующее:
1) Большая нагрузка на шатун (особенно на центр шатуна), что делает разрушение шатуна более вероятным. Разрушение шатуна само по себе мало вероятно, кроме случаев обрыва, при заклинивании и гидроударе, как правило, шатун рвется у верхней или нижней головки под углом приблизительно 45 градусов к оси шатуна с возможным выходом из блока цилиндров.

2) Увеличение нагрузки на стенки блока цилиндров, большая нагрузка на поршни и кольца, увеличение рабочей температуры вследствие повышенного трения, как результат, более быстрый износ стенок блока цилиндра, колец, и ухудшении условий смазки. Износ этого участка блока цилиндров зависит от величины смещения оси пальца относительно оси поршня и от значения максимального угла наклона шатуна, т.е. при применении "кованных" поршней со смещенным пальцем, износ блока цилиндров будет меньше чем при применении стандартных поршней.

3) Более короткий шатун также увеличивает скорость движения поршня, что влияет на износ блока цилиндров и увеличение трения. Максимальная скорость поршня приходится на угол около 80 градусов поворота коленвала от ВМТ, для мотора с коленвалом 74,8 мм при 5600 оборотов в минуту она равна 22,92 м/с при шатуне 121 мм., и 22,80м/с., при шатуне 129 мм.

Наиболее весомым является зависимость ускорения поршня от длины шатуна. Большие значения ускорения положительно влияют на наполнение цилиндров на малых оборотах, что ведет к «тяговитости» двигателя в следствии лучшего наполнения. Но на высоких оборотах из-за инерционности потока во впускной трубе происходит эффект запирания на впускном клапане (т.е объем цилиндра над поршнем растет быстрее, чем может заполняться через клапанную щель, что ведет к ухудшению наполнения и мощностных характеристик на высоких оборотах). В случае длинного шатуна на малых оборотах происходит обратный выброс смеси, но на высоких нет явления запирания.
Еще не стоит забывать, что увеличенные хода коленвала компенсируются уменьшением компрессионной высоты поршня (смещением поршневого пальца вверх) или увеличением высоты блока цилиндров. Т.к. компрессионную высоту поршня можно уменьшать до определенного предела.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099972
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР,

Во времена Форда инженеры думали что 4 цилиндра в одном корпусе собрать невозможно.
Ошибались.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099974
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаР,

Во времена Форда инженеры думали что 4 цилиндра в одном корпусе собрать невозможно.
Ошибались.
За последние 100 лет ДВС принципиально не изменился. Горение топливной смеси. И поршни. И еще через 300 лет
всё будет так-же. Пока не вся нефть не будет OVER.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099981
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTДохтаР,

Во времена Форда инженеры думали что 4 цилиндра в одном корпусе собрать невозможно.
Ошибались.
За последние 100 лет ДВС принципиально не изменился. Горение топливной смеси. И поршни. И еще через 300 лет
всё будет так-же. Пока не вся нефть не будет OVER.

Ну какже, а роторный двигатель ё-мобиля
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099983
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А турбины в двигателях, а компрессия ?
Что с 1,4 литра снимают по 150 лошадей.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099991
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTА турбины в двигателях, а компрессия ?
Что с 1,4 литра снимают по 150 лошадей.

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

через 10 тыс км будешь капиталить движок )
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38099998
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При чём здесь турбины и роторы? Мы-же говорим об автомобилях. В классе авто-двигателей
ничего не могут нового придумать. И КПД не могут увеличить. И от бензина не могут отказаться.
И от массовой субкультуры muscle-cars не собираются отказываться на уровне головного
мозга ибо круть несусветная да и на посёлке все поцоны завидуют.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100007
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПри чём здесь турбины и роторы? Мы-же говорим об автомобилях. В классе авто-двигателей
ничего не могут нового придумать. И КПД не могут увеличить. И от бензина не могут отказаться.
И от массовой субкультуры muscle-cars не собираются отказываться на уровне головного
мозга ибо круть несусветная да и на посёлке все поцоны завидуют.

Какже не придумали если придумали. Таже турбина, это отдельный агрегат который работает в связке с двигателем для увеличения его мощности. Искуственное нагнетание компрессии в цилиндры. Поэтому если сравнить например Октавию 2000 го года, жрет 8 литров, выдает мощность 105лошадей. И Октавию 2010 года, жрет 8 литров выдает мощность 150 лошадей. Щас вот Ети при обьеме двигателя 1,2 литра выдает свыше ста лошадей. И ничего там капиталить через 10 тыс ненада.
50 лет назад у машин под капотом было по 50 лошадей, а жрали по 30 литров. А так конечно ничего нового в ДВС не придумали
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100013
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton И КПД не могут увеличить.

КПД как раз увеличивают и выбросы СО2 постоянно снижают
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100024
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmaytonПри чём здесь турбины и роторы? Мы-же говорим об автомобилях. В классе авто-двигателей
ничего не могут нового придумать. И КПД не могут увеличить. И от бензина не могут отказаться.
И от массовой субкультуры muscle-cars не собираются отказываться на уровне головного
мозга ибо круть несусветная да и на посёлке все поцоны завидуют.

Какже не придумали если придумали. Таже турбина, это отдельный агрегат который работает в связке с двигателем для увеличения его мощности. Искуственное нагнетание компрессии в цилиндры. Поэтому если сравнить например Октавию 2000 го года, жрет 8 литров, выдает мощность 105лошадей. И Октавию 2010 года, жрет 8 литров выдает мощность 150 лошадей. Щас вот Ети при обьеме двигателя 1,2 литра выдает свыше ста лошадей. И ничего там капиталить через 10 тыс ненада.
50 лет назад у машин под капотом было по 50 лошадей, а жрали по 30 литров. А так конечно ничего нового в ДВС не придумали

И какое отношение это имеет к эксперементам с ходом поршня ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100025
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРBAZlSTА турбины в двигателях, а компрессия ?
Что с 1,4 литра снимают по 150 лошадей.

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

через 10 тыс км будешь капиталить движок )

Зачем ставить турбину, делать компрессию ?
Щас все это барахло уже идет в стоковом варианте мидл сегмента авторынка,
вот например http://praga-auto.com.ua/skoda_yeti/prices/
Yeti, 1.2TFSI мотор, 105 лошадей, расход 6 литров,
ценник от 192 тыс грн.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100026
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРИ какое отношение это имеет к эксперементам с ходом поршня ?

Прямое, двигатели постоянно меняются.
Везде эксперементируют, с коленвалами, с поршнями, с обьемами, с компрессией ...
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100032
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРИ какое отношение это имеет к эксперементам с ходом поршня ?

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

В автостроении , в отличие от тебя пальцем в небо никто не тыкает.

Ходы поршня, обьемы, компрессию, распредвалы , турбины , геометрию впуска и выпуска итд
считают по формулам, делают и получают расчетные результаты без эксперементов.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100034
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРВ автостроении , в отличие от тебя пальцем в небо никто не тыкает.

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

угу, в маткаде прям все и считают.
А чо 50 лет назад сразу не сделали 1,2 обьем с 105 лошадьми, маткада небыло ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100039
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTmayton И КПД не могут увеличить.

КПД как раз увеличивают и выбросы СО2 постоянно снижают
Баз. Друг. Ты не поверишь. КПД современного ДВС составляет 20-30%.
У дизелей - чуть побольше. Но ты вдумайся в эти цифры1!!

Это эпик фейл!! Чувак! Мы более 100 лет обогреваем атмосферу! Равносильно
тому что ездим на паровозах! И это не смотря на комьютерное моделирование
взрывов камеры, новые идеи в механике поршней роторы, цилиндры и прочие
двигатели Ванкеля!

Ничего! Полный нуль!
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100041
Фотография Last_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTДохтаРВ автостроении , в отличие от тебя пальцем в небо никто не тыкает.

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

угу, в маткаде прям все и считают.
А чо 50 лет назад сразу не сделали 1,2 обьем с 105 лошадьми, маткада небыло ?

Дурачог, во fluent'e нестационарные газодинамические процессы считают.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100042
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTпропущено...


КПД как раз увеличивают и выбросы СО2 постоянно снижают
Баз. Друг. Ты не поверишь. КПД современного ДВС составляет 20-30%.
У дизелей - чуть побольше. Но ты вдумайся в эти цифры1!!

Это эпик фейл!! Чувак! Мы более 100 лет обогреваем атмосферу! Равносильно
тому что ездим на паровозах! И это не смотря на комьютерное моделирование
взрывов камеры, новые идеи в механике поршней роторы, цилиндры и прочие
двигатели Ванкеля!

Ничего! Полный нуль!

Читай
http://www.motorpage.ru/discussion/JEvoljucija_DVS/JEvoljucija_DVS_dostigla_pika.html
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100044
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так считается, что КПД классического автомобильного бензинового двигателя с принудительным искровым зажиганием составляет от 20 до 30% , дизельный двигатель может обеспечить 35-40%. В первой половине XX века это были выдающиеся характеристики на фоне пресловутого «КПД паровоза», который, как все мы помним из школьного курса физики, составлял 5-10%.

уже в 1920 – 1940 годы для этого были разработаны практически все основные принципы, как то турбонаддув, прямой впрыск и т.д. К 1970 годам началась настоящая погоня за повышением эффективности, продолжающаяся по сей день. Были разработаны такие элементы как охлаждение рабочей смеси, изменение фаз газораспределения, поэтапный впрыск… Сегодня некоторые автопроизводители утверждают, что в современном бензиновом ДВС удается добиться общего КПД в 35-38% . Однако вопрос об эффективности усовершенствования старых технологий остается открытым.

В России компания «Ё-авто» занимается разработкой роторно-лопастного двигателя, в котором к минимуму сведены потери на трение. Разработчики этой конструкции уже заявляли, что КПД нового двигателя должен составить 42-45% , что весьма неплохо для бензинового агрегата.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100046
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTЧитай
http://www.motorpage.ru/discussion/JEvoljucija_DVS/JEvoljucija_DVS_dostigla_pika.html
Не верю я в эти Ё-мобили и в 45%. Здесь какой-то фундаментальный подвох.
Если они принципиально меняют ДВС на ротор то это уже другой класс авто.
Со всеми вытекающими вопросами. Как оно заводится? Как охлаждается?
Как его можно обслуживать?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100047
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBAZlSTЧитай
http://www.motorpage.ru/discussion/JEvoljucija_DVS/JEvoljucija_DVS_dostigla_pika.html
Не верю я в эти Ё-мобили и в 45%. Здесь какой-то фундаментальный подвох.
Если они принципиально меняют ДВС на ротор то это уже другой класс авто.
Со всеми вытекающими вопросами. Как оно заводится? Как охлаждается?
Как его можно обслуживать?

Прогресс строится на тех кто верит , а не на тех кто не верит.
Еслиб мы сидели и зачитывались книжками предшественников, так бы и сидели на паровой тяге
по сегоднешний день
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100048
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTПрогресс строится на тех кто верит , а не на тех кто не верит.
Еслиб мы сидели и зачитывались книжками предшественников, так бы и сидели на паровой тяге
по сегоднешний день
Пфф... прогресс. А я когда в школе учился, наивный верил что у машин КПД - 90-95%.

Не разбивай мои детские идеалы!
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38100055
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получит ли модифицированная версия движка VX адаптируемый вариатор подбирающий размеры блоков ?

Кстате недавно выяснялась одна проблемка в движке Barbaris Compressor V32, которую пронаследовал движок VX.
Проблемка была найдена чисто теоритически, как исчезающе маленькая вероятность получить коррумпированные данные.
Поэтому спустя десятки тестирований, перезаполнениями десятками миллионов рандом ключей и перетестирование
всей таблицы после каждого добавленого ключа, на предмет что все ключи все еще на месте.
Но вот при очередном перетестировании, двигатель который икор7 гонял на десятках миллионов ключей 1,5 часа, эта теоретическая проблемка в модуле распознования свой/чужой проявилась . Решение пока что не найдено, так что пришлось сделать небольшую заплатку, увеличив размер кода с 8 до 16 бит, по моим расчетам проблемка может проявится при заполнении таблицы сотнями миллиардов ключей, или больше. Так что пока скажу просто "похуй"
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101246
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кхе... вобщем так. В продолжение банковских налоговых номеров.

Уточню постановку. Это embedded db, которая должна подняться на мобильном устройстве.
В условиях ограниченнной памяти. Или даже не embedded db а скорее витрина доступа
к данным
которые были выгружены из продакшен ДБ.

Основная цель - выбрать методы упаковки 1 таблицы с небольшим числом колонок.
В данном случае - 1 колонка.

На глаз, ничего не меряя составил список тестов алгоритмов которые надо будет прогнать.
Всё пока приблизительно +- 20% погрешности допускаю.

AlgorithmTable SizeCompressed ratioCreation timeRandom access time Iterator supportOrdered iterationUpdate/deleteFlat Table(CSV)33M 1.0++-Gzipped flat table10M 0.33++(forward)-Bitmap4M?+++Gzipped differencial numbers(LZW)??++(forward)-Ariphmetic differencial numbers??++(forward)-RadixTree??+?+(возможно)Bloom Filter(adaptive accuaracy)??---Bloom Filter(with exception table)??---

Тестовые данные были получены как генерация случайных ИНН в диапазоне от 1947 до 1996 года рождения
физ.лиц с пропорциональной гистограммой распределения групп в количестве 10% трудоспособного населения страны.

Это прибл. 3.2 млн rows.

В формате CSV - это 33М. Что еще не учтено? Не учтена гистограмма регистраций в налоговой.
Она нелинейна по годам. И не учтен метод генерации трехзначного серийного сомера. Я брал
просто последовательность от 0 до 999.

Не учтено существование "битых" ИНН с неровной CRC. Фактически они существуют в небольшом
количестве но я на них пока забил.

По поводу алгоритмов.

Gzipped differencial numbers - пока не знаю как пред-обработать. Подавать на вход
текстом - как-то некошерно. Это лишняя трансформация. Нужен более нативный подход.

Ariphmetic differencial numbers - у меня реально нету.
Где его взять имплементацию в Java да еще и со свободной лицензией
- пока не представляю. Но это была бы конфетка.

На последние два я делаю ставку. Они должны выехать в первое место
после битмапы по степени сжатия.

С точки зрения удобства транзакций Блум представляет собой самый тяжелый случай.
Итератора нет. И принципиально (!) невозможно сделать delete. Можно грохнуть всё
и прогрузить заново но меня это вобщем-то устраивает т.к. embedded DB будет
read only.

Есть также эффект стохастичных ложных срабатываний на большом количестве ключей
но я буду с этим бороться пользуясь тем что множество ИНН - счётное а не бесконечное
и я могу прогнать тест по всем номерам и выявить ложные и внести их в exceptions
либо просто подрегулировать коэффициент размера и количества ключей.

Вот вобщем-то и всё. Почему я взял ИНН ? Пох. Я мог брать любые базы которые
могут быть востребованы (в планах поддержать DB Maxmind, DB Vendors hardware address, DB префисов мобильной
и городской телефонии а также (няшечка!) БД Российских налоговых номеров.
У них там немножко хитрее и разрядность повыше. Ukranian ИНН просто попались
под руку первые.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101251
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTА лучше выделить вообще в твоей задаче один уровень,
массив на 65лет*12мес*31день = 24 180 ячеек.
В каждой ячейке будет список людей которые родились в один день :)
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101253
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужна числовая оценка. Что за ячейки? Сколько каждая из них займет? Сколько будет в сумме
с учётом всяких эффектов экстента и служебных данных.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101256
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каждая ячейка это указатель (4 байта) на список пользователей ровшихся в этот (номер) дня.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101257
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*родившихся
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101258
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.. всё равно не могу прикинуть размер.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101260
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дни рождений займут 88 кб
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101264
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не вижу особого резона бить по дням.

Например ты группируешь

Код: sql
1.
2.
3.
4.
5.
6.
NDAY Serial Gender CRC
---- 
29347 321 2 0
29347 322 1 2
29348 531 1 2
29348 990 3 3


По дням.

29347 *** * *
29348 *** * *

Но я с таким-же успехом могу групиировать по десятку дней.

2934* *** * *

И получу тоже какой-то бенефит. Весь спор в том кто выгадает больше.

RadixTree это всё обобщает до невообразимых высот.

Правда у меня к сожалению нет его имлементации которая сериализирует дерево на диск.
Без этого оценить трудно.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101267
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу Serial. Забудь что я говорил про sequence. Никакой последовательности там нет.
В силу неразберихи и бардака в налоговых службах. Скорее всего Киев делегировал
областям поддиапазоны (пример Харьков [200..250], Днепропетровск [250...310] e.t.c).
И вводили как бог даст. Централизованной БД не было. Я помню тот день когда я пришёл
в обл. исполком. и какая-то тётка вбивала в ДБФ-аля-Турбо-Вижн налоговые анкеты.
И никаким модемом с сеткой и близко не пахло.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101275
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это фейспалм какойто
Вот тебе код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Class person
{
Int Serial,
Int Gender
Int CRC
}

Class personList
{}

PersonList day[22320]



Доступ

PersonList persons = day[номер дня рождения];

Что тут еще не понятного ?
Серализация - сброс массива на диск
Доступ - взятие по индексу
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101278
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм..

3.2 млн * 3 * 4 байта = 38M.

Многовато для мобильного девайса. Да и в память прогружать нет особого смысла.
Я ведь не гонюсь за наносекундами. Мне хоть клиент будет ждать 3-5 сек. пофиг.
А если ему крутящуюся анимацию рисовать то и вообще согласен минуту терпеть.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101284
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как бы сказал Дивижин, блджад.

maytonБаз. Давай задачу подкину. Сколько нужно памяти чтобы
быстро отделять клиентов бан ка от не-клиентов?

1) Для простоты считаем что клиенты идентифицируются Украинскими ИНН.
Это целые вида: [0000000000...9999999999]

Первые 5 цифр - это дата рождения клиента в виде количества дней
с 1900 года (плюс минус 1 день не помню точно).

Клиентом может быть чел достигший 16 лет и (хе-хе) желательно
не старше 100 лет ибо нефих.

Клиенты - обычное не все люди а какой-то процент от всех налогоплательщиков
к примеру (1-5%). Но система должна иметь возможность зарегистрировать
и всё 100% населения если возникнет необходимость (банк стал гос-банком).

Население Украины составляет 45 633 600 чел за 2012 год по данным wiki.

2) Предусмотреть расширение структуры для случая с Гос-Банком.

Вот так вот.

Первые 5 цифр сжимаются константно до 80 килобайт (показал как!)
Остаются еще 5 цифр. 5 цифр кодируются 17ти битами.

Итого:
80 кб + 3.2 * 17 / 8 = 7.6 мб
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101288
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
7.6 Мб.

Это твоё "заднее" слово?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101294
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton7.6 Мб.

Это твоё "заднее" слово?

Если база ридонли, могу пожать задачу ММ 3Б Лопушком.
В мегабайт вложимся
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101296
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cool... А есть Java-имплементация?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101298
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по дефолту, методами которые лежат "на поверхности", 7.6 мегабайт
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101302
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonCool... А есть Java-имплементация?

нет, и некогда делать.
Короче делай сам, реально задача ОЧЕНЬ простая.
Вырожденное в массив РадиксТри.
К 7.6 мегабайт жмется легко.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101303
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RadixTree традиционно используется для умных Combo-Boxes при наборе префиксов.
Те имплементации что я смотрел просто прогружают справочники из БД целиком
в оперативку и испольуют. А у меня интерес - сериализовать их оптимально.
Такую реализацию я еще не находил. Пару дней потрачу на поиск - потом плюну
и поломаю исходники http://www.badgenow.com/p/radixtree/
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101310
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут немножко поправил цифры. Забыл что я сливал в файл несортированные INN.
После ранжирования и gzip как-то лучше сработал.
AlgorithmTable SizeCompressed ratioCreation timeRandom access time Iterator supportOrdered iterationUpdate/deleteFlat Table(CSV)33M 1.0++-Gzipped flat table6.5M0.19++(forward)-
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101313
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что ты будешь делать с этими ИННами ?
Будешь просто определять есть в списке, нет в списке при вводе пользователем ?
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101318
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В изначальной постановке - определения клиентов банка - это так.
Но даже в такой постановке (фильтр свой-чужой, файрвол, база
угнанных авто, краденые паспорта) реализация может быть полезной.
Хотя-бы как одна из фаз поисковой операции. Или как проксирование
поиска.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101353
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlSTЧестно гря, с формулой сразу сообразить тяжело.
На практике:

Вероятность ~0.05832, или примерно один к двадцати.


Вообще-то от распределения случайной величины зависит...
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101500
BAZlST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivBAZlSTЧестно гря, с формулой сразу сообразить тяжело.
На практике:

Вероятность ~0.05832, или примерно один к двадцати.


Вообще-то от распределения случайной величины зависит...

формулы есть, генераторы псевдослучайных тоже их подтверждают с небольшой погрешностью
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101591
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAZlST, есть относительная частота и вероятность.
Это вобщем-то не совсем одинаковы вещи. Вобщем
Теорема Бернулли тебе в помощь.
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38101629
FVMas-guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FVMas 3.1.0 выпусе 2 - лучшая СУБД в мире!
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38102075
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot mayton]
AlgorithmTable SizeCompressed ratioCreation timeRandom access time Iterator supportOrdered iterationUpdate/deleteFlat Table(CSV)33M 1.0++-Bitmap??+++
Здесь я гоню. И никто за руку не схватил. Для битмапы размер считается по свободным слотам. Хехе...

1 0 000 000 000 / 8 = 1 250 000 000 bytes = 1G
...
Рейтинг: 0 / 0
Лучшие задачи проекта
    #38118935
Анархасис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
191 сообщений из 191, показаны все 8 страниц
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Лучшие задачи проекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]