БлогNot. Javascript: найти мощность множества для массива

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

Javascript: найти мощность множества для массива

Считая вот здесь перестановки и комбинации, при подсчёте комбинаций я фактически искал и мощность множества (строка "Всего подмножеств" даёт это значение без единицы, так как не учитывается пустое множество.)

Меж тем, если использовать современные стандарты Javscript, то выдать для массива значений массив всех подмножеств (включая пустое) можно буквально тремя строчками значащего кода (см. метод sets).

Вот код и результат его тестового выполнения:

<div id='setsresult'></div>
<script type="text/javascript">

function sets(arr) {
 return arr.reduceRight (
  function (a, x) {
   return a.concat(a.map(
    function (y) {
     return [x].concat(y);
    }
   ));
  }, [[]]
 );
}

arr=sets([1,2,3,4]);
var str='';
arr.forEach (
 function(item, i, arr) {
  str += item + '<br>'+ "\n";
 }
);
document.getElementById('setsresult').innerHTML=str;
</script>
<noscript><p>Извините, для работы приложения нужен включённый Javascript</p></noscript>
4
3
3,4
2
2,4
2,3
2,3,4
1
1,4
1,3
1,3,4
1,2
1,2,4
1,2,3
1,2,3,4

Первой выдаётся пустая строка (пустое множество), просто тег <pre> блога его выкинул :) Проверено в Firefox и IE11.


теги: javascript числа

Здесь можно оставить коментарий, обязательны к заполнению только красные поля. Не пишите лишнего, и всё будет хорошо :)

Ваше имя:
Пароль (если желаете зарегистрировать имя):
Любимый URL (если указываете, то вставьте полностью):
Текст сообщения (до 1024 символов):
 
Введите 3-й код из этих чисел:
10840, 26145, 67694, 40689
 

15.05.2016, 15:58; рейтинг: 3438

  свежие записипоиск по блогукомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход