AssassiN Posted March 29, 2013 Share Posted March 29, 2013 С лека оптимизация това с разделянето тръгна :-) <!DOCTYPE html> <html lang="en"> <head> <title>Test</title> <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet"> <style> #form_controls label { width: 80px; text-align: right; padding-right: 5px; } .controls { margin-bottom: 5px; } .controls input { margin-right: 5px; } </style> </head> <body> <div class="container"> <div class="row"> <form class="span4"> <fieldset class="form-inline"> <legend>Legend</legend> <div id="form_controls"></div> <div class="form-actions"> <button class="btn btn-primary" id="btnSplit">Find Best Partitioning</button> </div> </fieldset> </form> <div class="span8"> <legend>Results</legend> <div id="results" class="row"> </div> </div> </div> </div> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script> <script> var bestSplit; var bestSplitDelta = 9999; var items; var teamWeight = [0, 0, 0, 0]; var teamSize = [0, 0, 0, 0]; var numIterations = 0; function EvaluateSplit() { var teams = [[],[],[],[]]; var teamSize = [0, 0, 0, 0]; for (var i = 0; i < 16; i++) { teams[items[i].team].push(i); } for (var i = 0; i < 4; i++) if (teams[i].length != 4) return; // invalid teams var minWeight = Math.min.apply(null, teamWeight); var maxWeight = Math.max.apply(null, teamWeight); teamDelta = maxWeight - minWeight; if (teamDelta < bestSplitDelta) { bestSplit = teams; bestSplitDelta = teamDelta; } } function SplitItems(ndx) { for (var i = 0; i < 4; i++) { if (teamSize[i] == 4) continue; //$("#t" + i).text(i); items[ndx].team = i; teamWeight[i] += items[ndx].weight; teamSize[i]++; numIterations++; var teamDelta = 0; if (ndx >= 7) { var minWeight = 9999; var maxWeight = 0; for (var t = 0; t < 4; t++) { if (teamSize[t] != 4) continue; if (minWeight > teamWeight[t]) minWeight = teamWeight[t]; if (maxWeight < teamWeight[t]) maxWeight = teamWeight[t]; } teamDelta = maxWeight - minWeight; } if (ndx < 15) { if (teamDelta < bestSplitDelta) // skip bad combinations SplitItems(ndx + 1); } else { if (teamDelta < bestSplitDelta) { EvaluateSplit(); } } teamSize[i]--; teamWeight[i] -= items[ndx].weight; } } function DisplayBestSplit() { $("#results").html(""); for (var t = 0; t < 4; t++) { var $div = $("<div class='span2'></div>"); var tw = 0; for (var n = 0; n < 4; n++) { $div.append(items[bestSplit[t][n]].description + " (" + items[bestSplit[t][n]].weight + ")<br/>"); tw += items[bestSplit[t][n]].weight; } $div.append("team weight: " + tw); $("#results").append($div); } var $div2 = $("<div class='span8'></div>"); $div2.append("<br><br>team difference: " + bestSplitDelta + ", combinations tested: " + numIterations); $("#results").append($div2); } function InitializeForm() { for (var i = 1; i <= 16; i++) { var $div = $("<div class='controls'><label>" + i + ".</label></div>"); var $inp1 = $("<input type='text' placeholder='description' class='input-medium' />").attr("id", "name" + i); var $inp2 = $("<input type='number' placeholder='weight' class='input-mini' />").attr("id", "weight" + i); $inp1.val("item #" + i); $inp2.val((Math.random() * 150).toFixed(0)); $div.append($inp1).append($inp2).append("<span id='t"+i+"'></span>"); $("#form_controls").append($div); } $("#btnSplit").click(function (event) { event.preventDefault(); items = []; for (var i = 1; i <= 16; i++) { var rec = { description: $("#name" + i).val(), weight: parseFloat($("#weight" + i).val()), team: 0 }; items.push(rec); } numIterations = 0; teamWeight = [0, 0, 0, 0]; teamSize = [0, 0, 0, 0]; bestSplitDelta = 9999; SplitItems(0); DisplayBestSplit(); }); } InitializeForm(); </script> </body> </html> Това го записваш в един .html файл и си готов Нещо не схващам.... Правя копи пействам в Word, save as .html, После като го стартирам, не става нищо - просто ми се отваря пак текста, само че в Chrome?! Къде греша? Link to comment Share on other sites More sharing options...
w00x Posted March 29, 2013 Share Posted March 29, 2013 Пробвай да отвориш Notepad, пейстни вътре, запази файла и промени разширението на html. Виж какво ще стане. Link to comment Share on other sites More sharing options...
AssassiN Posted March 29, 2013 Share Posted March 29, 2013 Пробвай да отвориш Notepad, пейстни вътре, запази файла и промени разширението на html. Виж какво ще стане. Сега стана! Мерси! Ебаси якото! А не може ли да почва с празни полета? Откъде си ги взима тея цифри? Link to comment Share on other sites More sharing options...
mIRCata Posted March 29, 2013 Share Posted March 29, 2013 $inp1.val("item #" + i); $inp2.val((Math.random() * 150).toFixed(0)); ей тука ти се пълнят с рандом цифри. Предполагам защото не му се е занимавало да прави проверки дали всичко е въведено и си осигурява по този начин да има нещо във всички полета Link to comment Share on other sites More sharing options...
djadomraz Posted March 29, 2013 Share Posted March 29, 2013 Не позна. Мързеше ме да пиша смислени данни и си ги генерирах. Сложи // пред 2та реда, които ти е казал Миро и всичко ще е правно. Link to comment Share on other sites More sharing options...
AssassiN Posted March 29, 2013 Share Posted March 29, 2013 Много хубаво, ама не работи... С пробните числа ок, ама сега като му вкарах петцифрените... Защо, мамка мууууууу! EDIT: Да де, ама ги закръглих до трицифрени... В крайна сметка е въпрос на коефициент... С трицифрените си работи супер! Link to comment Share on other sites More sharing options...
djadomraz Posted March 29, 2013 Share Posted March 29, 2013 Имаше лека грешка - при оптимизацията се оценяваха и непълни отбори и е изпускало валидни комбинации. Я виж сега A 5-цифрените числа как ги въвеждаш? Гледай да е само число и да няма интервали, запетайки и други гадости покрай тях <!DOCTYPE html> <html lang="en"> <head> <title>Test</title> <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet"> <style> #form_controls label { width: 80px; text-align: right; padding-right: 5px; } .controls { margin-bottom: 5px; } .controls input { margin-right: 5px; } </style> </head> <body> <div class="container"> <div class="row"> <form class="span4"> <fieldset class="form-inline"> <legend>Legend</legend> <div id="form_controls"></div> <div class="form-actions"> <button class="btn btn-primary" id="btnSplit">Find Best Partitioning</button> </div> </fieldset> </form> <div class="span8"> <legend>Results</legend> <div id="results" class="row"> </div> </div> </div> </div> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script> <script> Number.prototype.formatMoney = function(c, d, t){ var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0; return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); }; var bestSplit; var bestSplitDelta = 9999; var items; var teamWeight = [0, 0, 0, 0]; var teamSize = [0, 0, 0, 0]; var numIterations = 0; function EvaluateSplit() { var teams = [[],[],[],[]]; for (var i = 0; i < 16; i++) { teams[items[i].team].push(i); } for (var i = 0; i < 4; i++) if (teams[i].length != 4) return; // invalid teams var minWeight = Math.min.apply(null, teamWeight); var maxWeight = Math.max.apply(null, teamWeight); teamDelta = maxWeight - minWeight; if (teamDelta < bestSplitDelta) { bestSplit = teams; bestSplitDelta = teamDelta; } } function SplitItems(ndx) { for (var i = 0; i < 4; i++) { if (teamSize[i] == 4) continue; //$("#t" + i).text(i); items[ndx].team = i; teamWeight[i] += items[ndx].weight; teamSize[i]++; numIterations++; var teamDelta = 0; var numCompleteTeams = 0; if (ndx >= 7) { var minWeight = 9999; var maxWeight = 0; for (var t = 0; t < 4; t++) { if (teamSize[t] != 4) continue; numCompleteTeams++; if (minWeight > teamWeight[t]) minWeight = teamWeight[t]; if (maxWeight < teamWeight[t]) maxWeight = teamWeight[t]; } teamDelta = maxWeight - minWeight; } if (ndx < 15) { if ( numCompleteTeams < 2 || teamDelta < bestSplitDelta) // skip bad combinations SplitItems(ndx + 1); } else { if (teamDelta < bestSplitDelta) { EvaluateSplit(); } } teamSize[i]--; teamWeight[i] -= items[ndx].weight; } } function DisplayBestSplit() { $("#results").html(""); for (var t = 0; t < 4; t++) { var $div = $("<div class='span2'></div>"); var tw = 0; for (var n = 0; n < 4; n++) { $div.append(items[bestSplit[t][n]].description + " (" + items[bestSplit[t][n]].weight + ")<br/>"); tw += items[bestSplit[t][n]].weight; } $div.append("team weight: " + tw); $("#results").append($div); } var $div2 = $("<div class='span8'></div>"); $div2.append("<br><br>team difference: " + bestSplitDelta + ", combinations tested: " + numIterations.formatMoney(2,'.',',')); $("#results").append($div2); } function InitializeForm() { for (var i = 1; i <= 16; i++) { var $div = $("<div class='controls'><label>" + i + ".</label></div>"); var $inp1 = $("<input type='text' placeholder='description' class='input-medium' />").attr("id", "name" + i); var $inp2 = $("<input type='number' placeholder='weight' class='input-mini' />").attr("id", "weight" + i); //$inp1.val("item #" + i); //$inp2.val((Math.random() * 150).toFixed(0)); $div.append($inp1).append($inp2).append("<span id='t"+i+"'></span>"); $("#form_controls").append($div); } $("#btnSplit").click(function (event) { event.preventDefault(); items = []; for (var i = 1; i <= 16; i++) { var rec = { description: $("#name" + i).val(), weight: parseFloat($("#weight" + i).val()), team: 0 }; items.push(rec); } numIterations = 0; teamWeight = [0, 0, 0, 0]; teamSize = [0, 0, 0, 0]; bestSplitDelta = 9999; SplitItems(0); DisplayBestSplit(); }); } InitializeForm(); </script> </body> </html> Link to comment Share on other sites More sharing options...
DON_CHEFO Posted March 29, 2013 Share Posted March 29, 2013 Верно, че за всичко си имало първи път. Никога до сега в 10 и 20 сутринта не бях пил уиски. Сигурно ще ми е и за последен път де...ама от опит глава не боли Link to comment Share on other sites More sharing options...
Mockingbird Posted March 29, 2013 Share Posted March 29, 2013 10 и 20 сутринта, ама кое време? Link to comment Share on other sites More sharing options...
DON_CHEFO Posted March 29, 2013 Share Posted March 29, 2013 тукашно .. Link to comment Share on other sites More sharing options...
Mockingbird Posted March 29, 2013 Share Posted March 29, 2013 Демек, нашо?! За хубавото уиски, час няма.Мога да го цъкам по всяко време на денонощието. Link to comment Share on other sites More sharing options...
DON_CHEFO Posted March 29, 2013 Share Posted March 29, 2013 Демек, нашо?! За хубавото уиски, час няма.Мога да го цъкам по всяко време на денонощието. не бре...от другата страна на големия гьол Link to comment Share on other sites More sharing options...
RaptoR Posted March 29, 2013 Share Posted March 29, 2013 Верно, че за всичко си имало първи път. Никога до сега в 10 и 20 сутринта не бях пил уиски. Сигурно ще ми е и за последен път де...ама от опит глава не боли Добреее, добре... Само така Още два дни, два дни мъки и напъни и сдавам обекта... Ще се отпразнува сериозно! Link to comment Share on other sites More sharing options...
Mockingbird Posted March 29, 2013 Share Posted March 29, 2013 Нареждам те бре ....Да ти е сладко... Link to comment Share on other sites More sharing options...
Grimjaur Posted March 29, 2013 Share Posted March 29, 2013 Режа един сурово сушен свински бут, сипал съм си от кумовата, слушам Цепелин. Зле ми е. Link to comment Share on other sites More sharing options...
RaptoR Posted March 29, 2013 Share Posted March 29, 2013 Жаля за теб. Наздраве! Link to comment Share on other sites More sharing options...
PSYCHOSIS Posted March 29, 2013 Share Posted March 29, 2013 В магазина са ми дали 9 кебапчета вместо 8. THIS IS AVANTAAAAAAAAA! Link to comment Share on other sites More sharing options...
w00x Posted March 29, 2013 Share Posted March 29, 2013 Сигурен ли си, че не си си платил за 9-тото? Link to comment Share on other sites More sharing options...
Psihara^^ Posted March 29, 2013 Share Posted March 29, 2013 АХХАХАХААХХАХАХАХАХАХАХАХАХАХААХАХАХХАХАХАХАХАХАХАХАХАХАХАХА BTW, Тези 8 (9) кебапчета са за теб и копче, и за тази вечер, и за утре, НАЛИ? Link to comment Share on other sites More sharing options...
djadomraz Posted March 29, 2013 Share Posted March 29, 2013 mobo, твойта кожа, къде можа да ми препоръчаш тоя powerball... развали дисциплината в целия офис - цял ден се редуваме да друскаме тая топка барем светне синьо, вече докато държим мишките ръцете ни треперят. Производителността спадна със поне 70% заради него Link to comment Share on other sites More sharing options...
Grimjaur Posted March 30, 2013 Share Posted March 30, 2013 Аааааааахахахаххаха!!! Чакай да мине еуфорията, да видиш какъв ефект има върху китките. Ред. Галине, искам да те питам дали е по-добре да ми спретнеш товa или да си купя готов? Link to comment Share on other sites More sharing options...
Godfather Posted March 30, 2013 Share Posted March 30, 2013 Баси и деня изкарах днес, току-що се прибрах утрепан (10.30 вечерта) и смятам да се отнасям до утре на обяд. Станах в 7 и нещо сутринта (беше официален почивен ден по тези земи) и се отнесох към Уислър. Жега, яко слънце, много сняг и зверско каране до късния следобед. След това як запой в една ирландска кръчма с чудна бира (на снимката) до никое време. Стар съм вече за такива изпълнения, мамка му. Горната снимка е правена на Blackcomb почти в подножието на върха, а отсреща се виждат пистите на Whistler. Между тези две планини над огромната пропаст се движи прочутия Peak2Peak кабинков лифт. Ето и една панорама от същото място. А това е мазната ирландска биричка, с която се размазах. Link to comment Share on other sites More sharing options...
Antares Posted March 30, 2013 Share Posted March 30, 2013 Кръстник, вече открих вело сезона Тая неделя един виден шопски психопат обмисля да ни подложи на старопланински изтезания Link to comment Share on other sites More sharing options...
gado Posted March 30, 2013 Share Posted March 30, 2013 Аааааааахахахаххаха!!! Чакай да мине еуфорията, да видиш какъв ефект има върху китките. Ред. Галине, искам да те питам дали е по-добре да ми спретнеш товa или да си купя готов? Пич, заеби го това! Правено е вече от един приятел и не бачка. В смисъл, то си бачка, ама освен да си правиш весели искрички за друго не става. Ако толкова искаш нещо миниатюрно, намери си захранване от някой малък, рубинов лабораторен лазер и с малко човъркане по него и при условие, че си направиш заваръчна ваничка, има доста интересни възможности Link to comment Share on other sites More sharing options...
Grimjaur Posted March 30, 2013 Share Posted March 30, 2013 Птюх..мба, по-добре с газ-генератора... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.