blabla

vnogo

HTML

<label for="values">Values:</label>
<input id='values' type="text" onkeyup="setsum()" />
<label id=sum></label>
<br>
<label for="min">min:</label>
<input id='min' type="range" max=249 min = 0 value=126 oninput ="updatemin()"/>
<label id='minvalue'>126</label>
<br>
<label for="max">max:</label>
<input id='max' type="range" min=1 max =250 value=250 oninput ="updatemax()" />
<label id='maxvalue'>250</label>
<br>
<input type="button" value="generate" onclick="generate()">
<label id="msg">Sets:</label>

JavaScript

function generate() {
  generate_params($('#values').val(), $('#min').val(), $('#max').val())
}

function generate_params(values, min, max) {
  var items = values.split(",").filter(Number);
  var itemCount = items.length;
  var counter = 0;
  while (counter < (2 << itemCount)) {
    var set = [];
    for (i = 0; i < itemCount; i++) {
      if ((counter & (1 << i)) != 0)
        set.push(+items[i]);
    }
    var sum = set.reduce(add, 0);
    if (sum < +max && sum > +min)
      $('#msg').append(document.createTextNode("{" + set + "}"));
    counter += 1;
  }
}

function add(a, b) {
  return +a + +b;
}

function setsum() {
  var items = $('#values').val().split(",").filter(Number);
  $('#sum').html('count:' + items.length + ' sum:' + items.reduce(add, 0));
}

function updatemin(){
var min = +$('#min').val();
var max = +$('#max').val();
if(min > max) $('#max').val(min+1);
updatelabels();
}

function updatelabels()
{
	$('#minvalue').html($('#min').val());
	$('#maxvalue').html($('#max').val());
}

function updatemax(){
	var min = +$('#min').val();
var max = +$('#max').val();
if(min > max) $('#min').val(max-1);
updatelabels();
}