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

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.

15.05.2016, 15:58 [5097 просмотров]


теги: javascript числа

К этой статье пока нет комментариев, Ваш будет первым