2014 dxdy logo

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

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




 
 Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 02:33 
Для набора из четырех чисел необходимо построить все комбинации по 10 чисел в каждой (все упорядоченные наборы). Как?

 
 
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 02:54 
Аватара пользователя
Записать числа от нуля до $4^{10}-1$ в четверичной системе счисления (добавляя слева необходимое число нулей), затем поменять цифры $0, 1, 2, 3$ на ваши числа.

 
 
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 03:50 
Aritaborian в сообщении #1436311 писал(а):
Записать числа от нуля до $4^{10}-1$ в четверичной системе счисления (добавляя слева необходимое число нулей), затем поменять цифры $0, 1, 2, 3$ на ваши числа.

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

 
 
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 11:59 
maximkarimov в сообщении #1436313 писал(а):
Или я что-то не понимаю?
Вы что-то не понимаете. :-) Идея метода совершенно правильная.

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

 
 
 
 Re: Матлаб: как получить для набора из 4 все комбинации по 10?
Сообщение22.01.2020, 12:45 
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 
Aritaborian в сообщении #1436311 писал(а):
Записать числа от нуля до $4^{10}-1$ в четверичной системе счисления (добавляя слева необходимое число нулей), затем поменять цифры $0, 1, 2, 3$ на ваши числа.

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

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

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group