2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 02:33 


26/09/17
341
Для набора из четырех чисел необходимо построить все комбинации по 10 чисел в каждой (все упорядоченные наборы). Как?

 Профиль  
                  
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 02:54 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Записать числа от нуля до $4^{10}-1$ в четверичной системе счисления (добавляя слева необходимое число нулей), затем поменять цифры $0, 1, 2, 3$ на ваши числа.

 Профиль  
                  
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 03:50 


26/09/17
341
Aritaborian в сообщении #1436311 писал(а):
Записать числа от нуля до $4^{10}-1$ в четверичной системе счисления (добавляя слева необходимое число нулей), затем поменять цифры $0, 1, 2, 3$ на ваши числа.

А как в Матлабе реализовать запись числа в четверичной системе счисления?
И потом - разве $4^{10}-1$ это не количество перестановок элементов? Если так, то там будут повторяющиеся числа - ведь если поменять местами два равных элемента (одно и то же число), то это тоже является перестановкой. Или я что-то не понимаю?

 Профиль  
                  
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 11:59 
Заслуженный участник


09/05/12
25179
maximkarimov в сообщении #1436313 писал(а):
Или я что-то не понимаю?
Вы что-то не понимаете. :-) Идея метода совершенно правильная.

Перевод числа в систему по основанию 4, по-видимому, придется написать самостоятельно, хотя если в Матлабе есть средства для работы с двоичными числами, то можно воспользоваться ими, а затем заменить на ваши числа каждую пару двоичных цифр.

 Профиль  
                  
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 12:45 


26/09/17
341
Pphantom в сообщении #1436332 писал(а):
maximkarimov в сообщении #1436313 писал(а):
Или я что-то не понимаю?
Вы что-то не понимаете. :-) Идея метода совершенно правильная.

Перевод числа в систему по основанию 4, по-видимому, придется написать самостоятельно, хотя если в Матлабе есть средства для работы с двоичными числами, то можно воспользоваться ими, а затем заменить на ваши числа каждую пару двоичных цифр.

Я совсем не знаком с двоичной системой записи числа (и четверичной тоже) - поэтому прошу простить за глупые вопросы:
1) количество чисел, которые нужно записать в двоичной системе счисления, то же самое?
2) как определить среди всех "двоичных цифр" (!?) пары для замены на одно из моих чисел?

-- 22.01.2020, 13:57 --

Хорошая новость - в Матлабе есть функция для записи числа в системе счисления с любым основанием!
"dec2base(d,n) — возвращает строку символов, представляющих десятичное число d как число в системе счисления с основанием n." Поэтому (1) мои вопросы по двоичной системе снимаются и (2) приступаю к сравнению быстродействия предложенного Aritaborian способа с тем, который был реализован мною ранее (с использованием функций fullfact, repmat и unique). Спасибо!

 Профиль  
                  
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение30.01.2020, 12:59 


26/09/17
341
Aritaborian в сообщении #1436311 писал(а):
Записать числа от нуля до $4^{10}-1$ в четверичной системе счисления (добавляя слева необходимое число нулей), затем поменять цифры $0, 1, 2, 3$ на ваши числа.

Реализовал - все летает! Огромное спасибо!

 Профиль  
                  
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение30.01.2020, 18:54 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
maximkarimov в сообщении #1437562 писал(а):
Реализовал - все летает!
Очень рад, что всё летает. Но на самом деле, не стоит оно благодарности. Я ведь предложил общий метод, подходящий для реализации во всех ЯП. Да и не в ЯП даже, а тупо карандашиком на бумаге. При наличии изрядной доли терпения ;-D В MATLAB-то ни разу не разбираюсь. Может, там есть какие-то функции/алгоритмы, позволяющие это ускорить в стопятьсот раз. Вот если бы мне предложили решить эту задачу в Wolfram Language, я б задумался более тщательно, ориентируясь на особенности языка/движка...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group