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

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

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

Poll ended at 18 Feb 2010, 22: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, 06: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 457 times

преобразуется в
Output1.png
Output1.png (5 KiB) Viewed 440 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 22 times
Last edited by mzu2006 on 17 Feb 2010, 22:23, edited 9 times in total.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby FireFly on 08 Feb 2010, 07: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
leader
leader
 
Posts: 640
Joined: 25 Apr 2009, 06:58
Location: г. Новосибирск
Medals: 1
Activity (1)
LabVIEW Version: 8.5; 8.6; 2009
Karma: 73
VIP bloggers

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

Postby mzu2006 on 08 Feb 2010, 18:07

Я имел в виду вот это:
Input.png
Input.png (3.62 KiB) Viewed 460 times
Output.png
Output.png (6.2 KiB) Viewed 457 times
Last edited by mzu2006 on 14 Feb 2010, 07:23, edited 2 times in total.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby eg on 08 Feb 2010, 18:09

Пока выдаёт такой результат. Удивительно, но при N=3 наши ответы не совпадают, остальное работает.
Attachments
Zadanie.png
User avatar
eg
guru
guru
 
Posts: 5647
Joined: 13 Nov 2007, 00:20
Location: Homburg/Germany
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2009
Karma: 231
CLAD MOD I/O VIP bloggers internet

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

Postby mzu2006 on 08 Feb 2010, 18:15

Эти ошибки устранены. Спасибо Eg.
Поставь repetitions >1, чтобы показывалась ошибка определения времени
N=3,9 и некоторых других имеет место проблема. Устраню в ближайше время. Пока ориентируйтесь на N=5.
Last edited by mzu2006 on 14 Feb 2010, 07:24, edited 3 times in total.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby eg on 08 Feb 2010, 18:19

Вот
Attachments
Zadanie.png
User avatar
eg
guru
guru
 
Posts: 5647
Joined: 13 Nov 2007, 00:20
Location: Homburg/Germany
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2009
Karma: 231
CLAD MOD I/O VIP bloggers internet

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

Postby mzu2006 on 08 Feb 2010, 18:22

Здорово, оптимизируй и присылай решение!
Last edited by mzu2006 on 14 Feb 2010, 07:24, edited 1 time in total.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby eg on 08 Feb 2010, 18:45

По-моему ты ошибся в подведении итога, т.к. моё решение работает в 5 раз медленнее твоего, а показатель "improved by, %" выдаёт 500.
User avatar
eg
guru
guru
 
Posts: 5647
Joined: 13 Nov 2007, 00:20
Location: Homburg/Germany
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2009
Karma: 231
CLAD MOD I/O VIP bloggers internet

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

Postby mzu2006 on 08 Feb 2010, 20:29

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

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

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

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

Спасибо, Eg.
Last edited by mzu2006 on 14 Feb 2010, 07:24, edited 1 time in total.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby mzu2006 on 10 Feb 2010, 01:50

Итак два дня уже прошли и мы имеем одно конкурсное решение. С нетерпением ждём остальных.
Last edited by mzu2006 on 14 Feb 2010, 07:24, edited 1 time in total.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby mzu2006 on 12 Feb 2010, 04:51

3 дня до кончания конкурса и уже есть целых 2 решения !!!
Last edited by mzu2006 on 14 Feb 2010, 07:25, edited 1 time in total.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby Indey on 12 Feb 2010, 06:37

А почему три дня осталось? Ведь по правилам конкурса - он длится девять дней, т.е. конкурс должен идти не до 14-го, а до 16-го, а в среду 17-го должны выкладываться варианты и запускаться голосовалка. Которая в свою очередь длится до пятницы, а в пятницу 19-го февраля в 16.00 объявляется победитель.
User avatar
Indey
doctor
doctor
 
Posts: 2168
Joined: 07 Feb 2008, 14:39
Location: г. Электросталь
Medals: 3
Activity (2) Bronze (1)
LabVIEW Version: 7.0; 8.0; 8.2; 8.6
Karma: 96
MOD I/O PDA VIP vision bloggers teachers

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

Postby eg on 12 Feb 2010, 12:02

Класс, два решения это уже хорошо, интересно посмотреть на второе и на образец.
User avatar
eg
guru
guru
 
Posts: 5647
Joined: 13 Nov 2007, 00:20
Location: Homburg/Germany
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2009
Karma: 231
CLAD MOD I/O VIP bloggers internet

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

Postby mzu2006 on 15 Feb 2010, 04:26

Начинается новая неделя. До конца конкурса 2 дня. У нас уже 3 решения.
rm -rf /mnt/windows
CLD
User avatar
mzu2006
leader
leader
 
Posts: 920
Joined: 16 Aug 2008, 00:12
Medals: 3
Professionalism (1) Tutorials (1)
Black (1)
LabVIEW Version: 8.0 8.6 2009 2010
Karma: 88
CLAD CLD I/O PDA VIP vision bloggers

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

Postby FireFly on 15 Feb 2010, 07:23

Пока добился только 193% при N=5 :think:
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
User avatar
FireFly
leader
leader
 
Posts: 640
Joined: 25 Apr 2009, 06:58
Location: г. Новосибирск
Medals: 1
Activity (1)
LabVIEW Version: 8.5; 8.6; 2009
Karma: 73
VIP bloggers

Next

Return to Конкурсы

Who is online

Users browsing this forum: Alex89, Юрий and 1 guest