function HowToCrossBridge(a, b, c, d) {
var totalTime1 = 0;
var breakFlag = true;
var str1 = "";
var count = 0;
var minTime = 0;
var minStr = "";
//while (breakFlag) {
//totalTime1 = 0;
var waitingCross = [a, b, c, d];
var hadCrossed = new Array();
waitingCross = waitingCross.sort(function (a, b) { return a - b });//按顺序从小到大排序
//第一次过桥(过去2人,剩余2人)
for (var i = 0; i < 4; i++) {
for (var j = i + 1; j < 4; j++) {
//count += 1;
totalTime1 = 0;
var hadCrossed1 = hadCrossed.concat();
var waitingCross1 = waitingCross.concat();
var firstGo1 = waitingCross1[i];
var firstGo2 = waitingCross1[j];
totalTime1 = totalTime1 + firstGo2;
str1 = "第一次过桥由" + firstGo1 + "和" + firstGo2 + "过,共计
";" + firstGo2 + " 分钟,合计" + totalTime1 + " 分钟
//移除等待过桥人员
waitingCross1.remove(firstGo1);
waitingCross1.remove(firstGo2);
waitingCross1.sort(function (a, b) { return a - b });
//添加已过桥人员
hadCrossed1 = [firstGo1, firstGo2];
hadCrossed1.sort(function (a, b) { return a - b });
str1 += "第一次过桥后 hadCrossed=" + hadCrossed1.join() + " waitingCross=" + waitingCross1.join() + "
";
//第二次返回(过去1人,剩余3人)
for (var k = 0; k < 2; k++) {
//count += 1;
var hadCrossed2 = hadCrossed1.concat();
var waitingCross2 = waitingCross1.concat();
var str2 = str1;
var totalTime2 = totalTime1;
var secondBack = hadCrossed2[k];
totalTime2 = totalTime2 + secondBack;
str2 += "第二次返回由" + secondBack + "过,共计
";" + secondBack + " 分钟,合计" + totalTime2 + " 分钟
//添加等待过桥人员
waitingCross2.push(secondBack);
waitingCross2.sort(function (a, b) { return a - b });
//移除已过桥人员
hadCrossed2.remove(secondBack);
hadCrossed2.sort(function (a, b) { return a - b });
str2 += "第二次返回后 hadCrossed=" + hadCrossed2.join() + " waitingCross=" + waitingCross2.join() + "
";
//第三次过桥(过去3人,剩余1人)
for (var m = 0; m < 3; m++) {
for (var n = m + 1; n < 3; n++) {
//count += 1;
var str3 = str2;
var hadCrossed3 = hadCrossed2.concat();
var waitingCross3 = waitingCross2.concat();
var totalTime3 = totalTime2;
var thirdGo1 = waitingCross3[m];
var thirdGo2 = waitingCross3[n];
totalTime3 = totalTime3 + thirdGo2;
str3 += "第三次过桥由" + thirdGo1 + "和" + thirdGo2 + "过,共计
";" + thirdGo2 + " 分钟,合计" + totalTime3 + " 分钟
//移除
waitingCross3.remove(thirdGo1);
waitingCross3.remove(thirdGo2);
waitingCross3.sort(function (a, b) { return a - b });
hadCrossed3.push(thirdGo1);
hadCrossed3.push(thirdGo2);
hadCrossed3.sort(function (a, b) { return a - b });
str3 += "第三次过桥后 hadCrossed=" + hadCrossed3.join() + " waitingCross=" + waitingCross3.join() + "
";
//第四次返回(过去2人,剩余2人)
for (var l = 0; l < 2; l++) {
count += 1;
var hadCrossed4 = hadCrossed3.concat();
var waitingCross4 = waitingCross3.concat();
var str4 = str3;
var totalTime4 = totalTime3;
var fouthBack = hadCrossed4[l];
totalTime4 = totalTime4 + fouthBack;
str4 += "第四次返回由" + fouthBack + "过,共计
";" + fouthBack + " 分钟,合计" + totalTime4 + " 分钟
//添加
waitingCross4.push(fouthBack);
waitingCross4.sort(function (a, b) { return a - b });
//移除
hadCrossed4.remove(fouthBack);
hadCrossed4.sort(function (a, b) { return a - b });
str4 += "第四次返回后 hadCrossed=" + hadCrossed4.join() + " waitingCross=" + waitingCross4.join() + "
";
//第五次过桥(全部通过)
var hadCrossed5 = hadCrossed4.concat();
var waitingCross5 = waitingCross4.concat();
var totalTime5 = totalTime4;
var fifthGo1 = waitingCross5[0];
var fifthGo2 = waitingCross5[1];
totalTime5 = totalTime5 + fifthGo2;
str4 += "第五次过桥由" + fifthGo1 + "和" + fifthGo2 + "过,共计
";" + fifthGo2 + " 分钟,合计" + totalTime5 + " 分钟
//添加
waitingCross5.remove(fifthGo1);
waitingCross5.remove(fifthGo2);
waitingCross5.sort(function (a, b) { return a - b });
//移除
hadCrossed5.push(fifthGo1);
hadCrossed5.push(fifthGo2);
hadCrossed5.sort(function (a, b) { return a - b });
str4 += "第五次过桥后 hadCrossed=" + hadCrossed5.join() + " waitingCross=" + waitingCross5.join() + "
";
str4 += "";
本方案共计" + totalTime5 + "分钟
var str5 = "方案" + count + str4;
str5 += "==================================================================
";
$('#CrossBridge').append(str5);
&n