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();
}