-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
98 lines (78 loc) · 2.19 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// global
var set;
var sum;
var setlength;
var result=0;
// value input
function input()
{
var inputSet = document.getElementById("set").value;
var inputSum = document.getElementById("sum").value;
if(inputSet=="" || inputSum=="")
{
alert("Cannot be empty");
}
inputSet = inputSet.toString();
inputSet= inputSet.split(",");
console.log("set-");
console.log(inputSet);
set=inputSet;
setlength = inputSet.length;
console.log("length-"+setlength);
console.log("sum -"+ inputSum);
sum= inputSum;
/// calling for sum of subset
var subset =[];
subsetfind(subset, 0, 0, 0);
nosolutionCheck();
}
// reset value
function resetValues()
{
document.getElementById("set").value="";
document.getElementById("sum").value="";
var p= document.getElementById("result");
p.textContent="";
result= 0;
console.log("Reset");
}
// Sum of Subset Problem
// set , setlength
function subsetfind(subset,subsetSize,subTotal,subCount)
{
console.log("subset find "+ " subset--"+ subset+ " subsize--"+ subsetSize+ " subtotal--"+ subTotal+ "subcount--"+ subCount);
if( subTotal == sum)
{
result= result+1;
display(subset,subsetSize);
subsetfind(subset,parseInt(subsetSize)-1,parseInt(subTotal)-parseInt(set[subCount]),parseInt(subCount)+1); //for some other subsets
return;
}
else
{
var i;
for( i = subCount; i < setlength; i++ ) { //find node
subset[parseInt(subsetSize)] = set[i];
subsetfind(subset,parseInt(subsetSize)+1,parseInt(subTotal)+parseInt(set[i]),i+1);
}
}
}
function display(subset, subsetSize)
{
subset = subset.slice(0,subsetSize);
console.log("result "+ subset);
var p= document.getElementById("result");
var text = document.createTextNode("{"+subset+"}");
var br = document.createElement("br");// <br/>
// appending to p tag
p.appendChild(text);
p.appendChild(br);
}
function nosolutionCheck()
{
if(result==0)
{
var p= document.getElementById("result");
p.textContent="No Solution";
}
}