|
|
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
Акей. Прикину на глаз. И сделаю общую постановку для любого массива. Дано массив 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. Вообще Баз ты по сабжу наглец! Ты краудсорсингом собираешь из нас солюшены а потом имплементируешь и выдаёшь за свои. Гарантирую что ты эти задачки специально придумал. Не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2013, 21:16 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
Поправка. Без Хэмминга. Просто посчитаем что H(Amin,Amax)=xor(Amin,Amax) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2013, 21:17 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
Давай на Си код, сколько операций будет для 4х чисел ? Все ищут более менее не комбинаторное решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2013, 21:27 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
Почему для 4-х чисел? Я не согласен с такой постановкой. Ты меня искусственно ограничил. Объясни зачем 4 числа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2013, 23:16 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
И при чем здесь комбинаторное? Я-же написал O(n). Линейное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2013, 23:26 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
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 раза ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:34 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
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 строках одинаковые последовательности бит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:41 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
BAZlSTПо-поводу твоей задачи, пришла в голову мысль на счет сжатия. Если все даты рождений отсортировать по возрастанию, то получится между соседними датами небольшая разница. Ну допустим от 0 до 15 минут. Вот через дельту и можно кодировать каждое следующее число. Наилучшее сжатие тут может быть в 32 раза ... Там нету кодирования минут. Только целые дни. Первоисточник по формату ИНН здесь http://zliypes.com.ua/blog/2007/10/29/ukrainian-pti/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:43 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
ДохтаРавторМинимальный три, потому что для трех бит на этой позиции действует условие: 110 != 100 != 111 != 001 Еслиб условие не действовало, тогда бы пришлось захватить еще один бит ( как вариант ). То есть должна соблюдаться уникальность . Так , баз ? В примере есть другой блок из 2 бит , но там уникальности нет, в 2 строках одинаковые последовательности бит. Нужно вернуть лучший найденый блок минимальной длины. В примере выше блок из трех бит, и все четыре числа по этому блоку не совпадают. В контр примере нет четырех блоков отличающихся друг от друга, тогда нужно вернуть наилучшее решение, в данном случае где три блока отличаются между собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:45 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:47 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
maytonBAZlSTПо-поводу твоей задачи, пришла в голову мысль на счет сжатия. Если все даты рождений отсортировать по возрастанию, то получится между соседними датами небольшая разница. Ну допустим от 0 до 15 минут. Вот через дельту и можно кодировать каждое следующее число. Наилучшее сжатие тут может быть в 32 раза ... Там нету кодирования минут. Только целые дни. Первоисточник по формату ИНН здесь http://zliypes.com.ua/blog/2007/10/29/ukrainian-pti/ тогда точно сжатие может составить 32 раза. Каждый день ктото рождался и дату рождения каждого следующего ребенка кодируй 0, если его дата не отличается от преведущей даты рождения, и 1 если отличается на один день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:47 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
ДохтаР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 тем что здесь совпадают два числа. А алгоритм такой - самое лучшее решение, где все четыре блока минимальной длины не совпадают между собой. Если такого не найдено, вернуть решение где хотябы три блока не совпадают. Если такого не найдено, хотябы два блока не совпадают. Если не найдено, то феил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:49 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
BAZlSTПо-поводу моей задачи, можно сделать оптимальней чем линейное, сделать рекурсивный спуск (но это прикидка). В любом случае - приведи хотябы псевдо код своего решения. Кстате не нужно забывать что могут быть контр примеры. Например лучший блок может быть и таким. Псевдокод. Общий случай. A(i) - произвольные. Нет монтонной последовательности. Нет кода Грея. Нет энтропиии. Абсолютные шумящие случайные. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:50 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
Инкремент в цикл вставить забыл. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:51 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
maytonBAZlSTПо-поводу моей задачи, можно сделать оптимальней чем линейное, сделать рекурсивный спуск (но это прикидка). В любом случае - приведи хотябы псевдо код своего решения. Кстате не нужно забывать что могут быть контр примеры. Например лучший блок может быть и таким. Псевдокод. Общий случай. A(i) - произвольные. Нет монтонной последовательности. Нет кода Грея. Нет энтропиии. Абсолютные шумящие случайные. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 1. Где приращение "i" ? 2. Программа должна выводить два числа. Смещение слева и размер блока бит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:52 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
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 уникальными значениями ? Баз , а вчера где ты был , почему про условия лучшести блоков не рассказал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:57 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
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 тем что здесь совпадают два числа. А алгоритм такой - самое лучшее решение, где все четыре блока минимальной длины не совпадают между собой. Если такого не найдено, вернуть решение где хотябы три блока не совпадают. Если такого не найдено, хотябы два блока не совпадают. Если не найдено, то феил. Что приоретенее длина блока или количество повторений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:58 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
ДохтаР2 битный блоки с 3 уникальными значениями, или 2 битные с 3 уникальными значениями ? Наверное ты имел ввиду 2 битные блоки с 3 мя уникальными значениями. Или 3х битные с 4мя уникальными. Тут правило простое, приоритет имеет тот блок у которого больше всего уникальных значений. Потом идет размер блока. Чем меньше, тем лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 00:59 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
BAZlSTmaytonпропущено... Там нету кодирования минут. Только целые дни. Первоисточник по формату ИНН здесь http://zliypes.com.ua/blog/2007/10/29/ukrainian-pti/ тогда точно сжатие может составить 32 раза. Каждый день ктото рождался и дату рождения каждого следующего ребенка кодируй 0, если его дата не отличается от преведущей даты рождения, и 1 если отличаеатся на один день. Акей. Мне нужна числовая оценка. Сколько КБ/Мb будет занимать структура данных (хеш-тейбла, tree-мапа или еще хер знаеть какая биткарта). Мне нужно знать укладывается ли она в память мобильного приложения и в память JavaScript-машины браузера. Сейчас ползаю по сайту http://www.ukrstat.gov.ua/ но там только общая статистика. А мне нужна рождаемость по дням. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 01:00 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
BAZlSTДохтаР2 битный блоки с 3 уникальными значениями, или 2 битные с 3 уникальными значениями ? Наверное ты имел ввиду 2 битные блоки с 3 мя уникальными значениями. Или 3х битные с 4мя уникальными. Тут правило простое, приоритет имеет тот блок у которого больше всего уникальных значений. Потом идет размер блока. Чем меньше, тем лучше. я имел ввиду 2 битные с 3-мя уникальными, и 3 бинтые с 3-мя уникальными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 01:02 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
BAZlST1. Где приращение "i" ? 2. Программа должна выводить два числа. Смещение слева и размер блока бит. Ну вот зачем придираешся? Идея то ведь внутри цикла уже развернута. Что там еще добавить єто уже мелочи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Тестируй и говори где какие баги и тайминги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 01:04 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
maytonBAZlSTпропущено... тогда точно сжатие может составить 32 раза. Каждый день ктото рождался и дату рождения каждого следующего ребенка кодируй 0, если его дата не отличается от преведущей даты рождения, и 1 если отличаеатся на один день. Акей. Мне нужна числовая оценка. Сколько КБ/Мb будет занимать структура данных (хеш-тейбла, tree-мапа или еще хер знаеть какая биткарта). Мне нужно знать укладывается ли она в память мобильного приложения и в память JavaScript-машины браузера. Сейчас ползаю по сайту http://www.ukrstat.gov.ua/ но там только общая статистика. А мне нужна рождаемость по дням. Очевидно что так сжать удасться только первые 5 цифер ИНН, где дата рождения. Очевидно также что не о какой хештейбле и три мапе речь не идет, поскольку это фактически заархивированая твоя последовательность. Единственый поиск по такой последовательности - фулскан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 01:04 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
maytonBAZlST1. Где приращение "i" ? 2. Программа должна выводить два числа. Смещение слева и размер блока бит. Ну вот зачем придираешся? Идея то ведь внутри цикла уже развернута. Что там еще добавить єто уже мелочи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Тестируй и говори где какие баги и тайминги. Что делают эти функции, покажи на нескольких примерах ? _offset(Axor),_length(Axor) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 01:05 |
|
||
|
Лучшие задачи проекта
|
|||
|---|---|---|---|
|
#18+
ДохтаРBAZlSTпропущено... Наверное ты имел ввиду 2 битные блоки с 3 мя уникальными значениями. Или 3х битные с 4мя уникальными. Тут правило простое, приоритет имеет тот блок у которого больше всего уникальных значений. Потом идет размер блока. Чем меньше, тем лучше. я имел ввиду 2 битные с 3-мя уникальными, и 3 бинтые с 3-мя уникальными. тогда двух битные имеют приоритет, поскольку они короче чем трехбитные блоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2013, 01:21 |
|
||
|
|

start [/forum/topic.php?fid=56&msg=38099744&tid=2015281]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 377ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...