[Задача] Разбить битовый массив [до 16.02.2010]

Различные конкурсы нашего портала

Какое из решений наиболее достойно?

Poll ended at 19 Feb 2010, 00:00

Solution01
0
No votes
Solution02
0
No votes
Solution03
3
50%
Solution04
1
17%
Solution05
2
33%
 
Total votes : 6

[Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 08 Feb 2010, 08:00

Уважаемые пользователи ресурса LabVIEW Portal!

Объявляется очередной конкурс под рубрикой "Виртуальный задачник".
подробнее о самом конкурсе здесь

решения лежат здесь

Задача: есть массив двойных слов (U32). Этот массив представляет из себя битовый поток, в котором вплотную записаны целые беззнаковые числа длиной (N<32) бит.
Цель: разработать subVI, выдающую записанные числа в виде отдельного массива U32. Если количество бит в исходном массиве не делится на N нацело, то остаток ("лишние биты") выбрасывается.
Запрещено использовать DLL, CIN, ActiveX, .NET и любые другие внешние по отношению к LabVIEW модули кода.

Пример работы: N=5
Вход:
01010101 01011110 11001010 10101101
01110111 01011101 10010101 10111010
...

Разбиваем
01)(01010)(1 0101)(1110 1)(10010)(10 101)(01101)
0111)(0111 0)(10111)(01 100)(10101) (10111)(010

Выход:
01101
10101
10010
11101
10101
01010
01001
10111
10101
01100
10111
01110
...

То же графически:
Input.png
Input.png (3.62 KiB) Viewed 8452 times

преобразуется в
Output1.png
Output1.png (5 KiB) Viewed 8435 times


Предоставляется в файле архива:
Шаблон SubVI. (TestVITemplate.vit)
Программа тестирования. (MainTest.vi) Выводит как количество времени, затраченное на выполнение, так и проверяет правильность работы.
Очень медленная реализация. (для сравнения результатов). Dumb.vi
Документация на TestVITemplate (TestVITemplate.rtf).

Оценка:
Зачётный запуск производится на 2-х ядерном AMD x64 (Windows Vista, 32 bit LabVIEW 9.0). Выигрывает программа переработавшая один и тот же
массив из 1000000 элементов за меньшее время на наборе N=1..31. В случае статистической неразличимости результатов разных участников, оценивается
стиль написания блок-диаграммы (компактность) голосованием. VI будет заново скомпилирована перед запуском.

Решения присылать mzu2006 (т.е. мне) до 16 февраля 2010 включительно. Победитель получает медаль за победу в конкурсе по традиционным правилам "Виртуального Задачника".
Тому, кто сократит время выполнения Dumb.vi более чем в 3.5 раза, лично от меня карма.

Дополнительная информация:
Реализация с DLL "в лоб" исполняется в 10 раз быстрее Dumb.vi.
Вопросы задавать в этом топике.
Attachments
Release80 v1.zip
(78.42 KiB) Downloaded 174 times
Last edited by mzu2006 on 18 Feb 2010, 00:23, edited 9 times in total.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 14.02.2010]

Postby FireFly on 08 Feb 2010, 09:42

Я не понял как
mzu2006 wrote:01)(01010)(1 0101)(1110 1)(10010)(10 101)(01101)
0111)(0111 0)(10111)(01 100)(10101) (10111)(010

превращается в
mzu2006 wrote:01101
10101
10010
11101
10101
01010
01001
10111
10101
01100
10111
01110
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
User avatar
FireFly
expert
expert
 
Posts: 1321
Joined: 25 Apr 2009, 08:58
Location: Санкт-Петербург
Medals: 2
Activity (1) Black (1)
LabVIEW Version: 2014
Karma: 174

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 08 Feb 2010, 20:07

Я имел в виду вот это:
Input.png
Input.png (3.62 KiB) Viewed 8455 times
Output.png
Output.png (6.2 KiB) Viewed 8452 times
Last edited by mzu2006 on 14 Feb 2010, 09:23, edited 2 times in total.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 14.02.2010]

Postby Eugen Graf on 08 Feb 2010, 20:09

Пока выдаёт такой результат. Удивительно, но при N=3 наши ответы не совпадают, остальное работает.
Attachments
Zadanie.png
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 08 Feb 2010, 20:15

Эти ошибки устранены. Спасибо Eg.
Поставь repetitions >1, чтобы показывалась ошибка определения времени
N=3,9 и некоторых других имеет место проблема. Устраню в ближайше время. Пока ориентируйтесь на N=5.
Last edited by mzu2006 on 14 Feb 2010, 09:24, edited 3 times in total.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 14.02.2010]

Postby Eugen Graf on 08 Feb 2010, 20:19

Вот
Attachments
Zadanie.png
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 08 Feb 2010, 20:22

Здорово, оптимизируй и присылай решение!
Last edited by mzu2006 on 14 Feb 2010, 09:24, edited 1 time in total.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 14.02.2010]

Postby Eugen Graf on 08 Feb 2010, 20:45

По-моему ты ошибся в подведении итога, т.к. моё решение работает в 5 раз медленнее твоего, а показатель "improved by, %" выдаёт 500.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 08 Feb 2010, 22:29

Небольшие корректировки к конкурсу.
1. Если количество бит в исходном массиве не делится на N нацело, то остаток ("лишние биты") выбрасывается.

2. Откорректирована dumb.vi в соответствии номером 1.

3. Индикатор "Improved by, %" следует читать "Time, compared to Dumb.vi". Соответственно косметически изменена программа тестирования.

Обновлены файлы в архиве в первом посте и внесены косметические изменения в сам пост.

Спасибо, Eg.
Last edited by mzu2006 on 14 Feb 2010, 09:24, edited 1 time in total.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 10 Feb 2010, 03:50

Итак два дня уже прошли и мы имеем одно конкурсное решение. С нетерпением ждём остальных.
Last edited by mzu2006 on 14 Feb 2010, 09:24, edited 1 time in total.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 12 Feb 2010, 06:51

3 дня до кончания конкурса и уже есть целых 2 решения !!!
Last edited by mzu2006 on 14 Feb 2010, 09:25, edited 1 time in total.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 14.02.2010]

Postby Pavel Krivozubov on 12 Feb 2010, 08:37

А почему три дня осталось? Ведь по правилам конкурса - он длится девять дней, т.е. конкурс должен идти не до 14-го, а до 16-го, а в среду 17-го должны выкладываться варианты и запускаться голосовалка. Которая в свою очередь длится до пятницы, а в пятницу 19-го февраля в 16.00 объявляется победитель.
User avatar
Pavel Krivozubov
professor
professor
 
Posts: 4385
Joined: 07 Feb 2008, 16:39
Location: г. Электросталь
Medals: 3
Activity (2) Bronze (1)
LabVIEW Version: 7.0 - 2013
Karma: 218
hardware I/O PDA VIP vision bloggers internet teachers students freelance

Re: [Задача] Разбить битовый массив [до 14.02.2010]

Postby Eugen Graf on 12 Feb 2010, 14:02

Класс, два решения это уже хорошо, интересно посмотреть на второе и на образец.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby mzu2006 on 15 Feb 2010, 06:26

Начинается новая неделя. До конца конкурса 2 дня. У нас уже 3 решения.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

Re: [Задача] Разбить битовый массив [до 16.02.2010]

Postby FireFly on 15 Feb 2010, 09:23

Пока добился только 193% при N=5 :think:
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
User avatar
FireFly
expert
expert
 
Posts: 1321
Joined: 25 Apr 2009, 08:58
Location: Санкт-Петербург
Medals: 2
Activity (1) Black (1)
LabVIEW Version: 2014
Karma: 174

Next

Return to Конкурсы

Who is online

Users browsing this forum: No registered users and 2 guests

cron