Работа с матрицей. Нужна помощь

Простейшие вопросы в области инженерной разработки
Ответить
Nana-sh
interested
interested
Сообщения: 3
Зарегистрирован: 23 окт 2016, 21:26
Версия LabVIEW: 14
Контактная информация:

Работа с матрицей. Нужна помощь

Сообщение Nana-sh »

Нужно реализовать задачу: Элементы целочисленной прямоугольной матрицы A строго упорядочены по возрастанию:
a[1,1] < a[1,2] < a[1,3] < ... < a[1,n] < a[2,1] < ... ... < a[2,n] < a[3,1] < ... < a[m,n]. Найти элемент, равный заданному числу b , и отпечатать его индексы. Число действий в решении должно быть порядка m+n , а не m*n ( последовательный перебор всех элементов матрицы не допускается).

Подскажите пожалуйста, можно ли в labview матрицу преобразовать в массив, а затем в этом массиве использовать метод половинного деления (дихотомии) для поиска заданного числа b? Если можно, прошу подсказать, как именно. Плюсик в карму любому за помощь! Спасибо за внимание.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Работа с матрицей. Нужна помощь

Сообщение IvanLis »

IvanLis писал(а):
Nana-sh писал(а):Подскажите пожалуйста, можно ли в labview матрицу преобразовать в массив, а затем в этом массиве использовать метод половинного деления (дихотомии) для поиска заданного числа b? Если можно, прошу подсказать, как именно. Плюсик в карму любому за помощь! Спасибо за внимание.
Matrix To Array VI http://zone.ni.com/reference/en-XX/help ... _to_array/
Array To Matrix VI http://zone.ni.com/reference/en-XX/help ... to_matrix/

Вам наверное именно алгоритм разработать и реализовать необходимо.
Если поиск для реального проекта, то можно так:
1.png
Аватара пользователя
Oleg B.

Activity Professionalism
leader
leader
Сообщения: 674
Зарегистрирован: 25 сен 2011, 11:30
Награды: 2
Версия LabVIEW: 5 .. 2021
Откуда: Israel
Контактная информация:

Re: Работа с матрицей. Нужна помощь

Сообщение Oleg B. »

Nana-sh писал(а):Подскажите пожалуйста, можно ли в labview матрицу преобразовать в массив, а затем в этом массиве использовать метод половинного деления (дихотомии) для поиска заданного числа b?
Это лишнее. Работайте с матрицей.
Сначала проведите поиск b>=a[i,n-1] {i=0..m-1} - получите искомую строку(максимум m итераций),
а затем b=a[i,j] {j=0..n-1} (максимум n итераций)
Последний раз редактировалось Oleg B. 25 окт 2016, 21:27, всего редактировалось 1 раз.
veni, vidi, phallomorphi
Аватара пользователя
Oleg B.

Activity Professionalism
leader
leader
Сообщения: 674
Зарегистрирован: 25 сен 2011, 11:30
Награды: 2
Версия LabVIEW: 5 .. 2021
Откуда: Israel
Контактная информация:

Re: Работа с матрицей. Нужна помощь

Сообщение Oleg B. »

IvanLis,
последовательный перебор всех элементов матрицы не допускается
veni, vidi, phallomorphi
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Работа с матрицей. Нужна помощь

Сообщение dadreamer »

Nana-sh писал(а):Подскажите пожалуйста, можно ли в labview матрицу преобразовать в массив, а затем в этом массиве использовать метод половинного деления (дихотомии) для поиска заданного числа b? Если можно, прошу подсказать, как именно.
В :labview: есть встроенная функция для этого, но можно реализовать с нуля через стандартные инструменты. Как пример - C:\Program Files (x86)\National Instruments\LabVIEW 2011\vi.lib\Utility\queue.llb\Queue BinSearch.vi. Не забудьте, что перед применением двоичного поиска массив должен быть отсортирован по возрастанию.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Работа с матрицей. Нужна помощь

Сообщение Blackman »

Это не BinSearch, но требованию не более n + m операций соответствует.
Вложения
Seach in Matrix (Sorted Asc Order by Row) 2.PNG
Seach in Matrix (Sorted Asc Order by Row) 2.vi
(18.25 КБ) 72 скачивания
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»