Блог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 числа

комментарии (0)

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

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

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