Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.06.2014, 14:04
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Биномиальные коэффициенты
В комбинаторике биномиальный коэффициент означает, число всех возможных вариантов выборки k элементов из множества элементов n.



Пример:

Из множества n {1,2,3,4}, выбираем все возможные комбинации из двух элементов, k=2

{1,2} {1,3} {1,4} {2,3} {2,4} {3,4}

Получается шесть возможных вариантов.


----------------------------------------


Как написать алгоритм перебирающий все эти варианты?
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
  #2 (permalink)  
Старый 05.06.2014, 14:25
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
Получается шесть возможных вариантов.
Как написать алгоритм перебирающий все эти варианты?
Ну по идее сочетание определяет совокупности элементов не на всем множестве когда порядок не важен, и дает ток кол-во возможных исходов..

Если хочешь их посмотреть то нужно строить таблицу элементарных исходов
В цикле наверное пробегаться

Берешь первый элемент, и подставляешь к нему оставшиеся по очереди(в данном случае 2 оставшихся)
Потом делаешь то же самое с другими.

Если юзаешь не сочетание а размещение (где порядок важен)
То там получается все остальные добавляешь
__________________
Научу себя плохому

Последний раз редактировалось l-liava-l, 05.06.2014 в 14:39.
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2014, 14:34
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

если в лоб, то так
var input = [1, 2, 3, 4];
var output = [];
var len = input.length;

for(var i = 0; i < len; i++) {
    var j = i + 1;
    for(; j < len; j++) {
        output.push([
            input[i],
            input[j]
        ]);
    }
}

console.log(output);
console.log(JSON.stringify(output));

но я не проверял
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 05.06.2014, 14:36
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

nerv_,
будет с повтрениями 1,2 2,1 и тп. в моём случае порядок не важен
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
  #5 (permalink)  
Старый 05.06.2014, 14:37
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

я так подумал, что мне проще один раз этот массив вычислить (пусть не самым рациональным способом) и запихать куда нибудь в базу
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
  #6 (permalink)  
Старый 05.06.2014, 14:37
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

nerv_,
Да)

Цитата:
будет с повтрениями 1,2 2,1 и тп. в моём случае порядок не важен
Как раз без повторений порядок же не важен)
Есть 2 цифры и пофиг в каком они положении
__________________
Научу себя плохому
Ответить с цитированием
  #7 (permalink)  
Старый 05.06.2014, 14:58
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

l-liava-l,
Цитата:
Пусть имеется n различных объектов.
Будем выбирать из них m объектов все возможными способами (то есть меняется состав выбранных объектов, но порядок не важен). Получившиеся комбинации называются сочетаниями из n объектов по m, а их число равно


http://www.matburo.ru/tv_komb.php


p.s.: вы достали, я думал поможете, а вы тока моск насилуете
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
  #8 (permalink)  
Старый 05.06.2014, 15:14
Аспирант
Отправить личное сообщение для cyber_ua Посмотреть профиль Найти все сообщения от cyber_ua
 
Регистрация: 05.06.2014
Сообщений: 94

Tim, я не совсем пойму причем тут эта формула,

Она поможет найти общее кол-во возможных комбинаций, а не их самих.
Ответить с цитированием
  #9 (permalink)  
Старый 05.06.2014, 15:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Tim,
k всегда 2?
Ответить с цитированием
  #10 (permalink)  
Старый 05.06.2014, 15:25
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Сообщение от cyber_ua
Она поможет найти общее кол-во возможных комбинаций, а не их самих.
Верно, в этом и проблема


Сообщение от рони
k всегда 2?
не, у меня покер. 52 карты в колоде и 5 нужно выбрать. те к = 5

http://pokercardplay.net/articles/13...naciy_v_pokere
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упростить коэффициенты уравнения Demath Общие вопросы Javascript 2 03.01.2013 19:07