-De-, iNils, спасибо за помощь
Остановился пока на таком варианте, надо будет доработать потом...

Код AS3:
var my_length:int = 2500; // 25 м
var cut_Ar:Array = [102,110,120,125,127,131,137,143,161,176,199,200,250,256,277,300,321,349,351,380,385,387,390];
var index_Array:Array = []; // массив с индексами нужных длин в массиве cut_Ar
var ind:int = cut_Ar.length-1;
var limit:int = 10; // допуск
function rundown():void {
var max_cutAr:int = cut_Ar[ind];
var min_numPipe:uint = Math.ceil(my_length/max_cutAr); // минимальное количество труб
for (var j:int = ind; j>=0; j--) {
if (min_numPipe<=ind) {
var long:int = cut_Ar[j];
var long_minus:int = cut_Ar[j-1];
if (long<my_length+limit) {
my_length-=long;
index_Array.unshift(j);
}
if (my_length<=limit && my_length>=-limit) {
trace("метраж: " + Number(2500-my_length))
for (var q:int=0; q<index_Array.length; q++) {
trace(cut_Ar[index_Array[q]])
}
//break;
}
if (my_length<long_minus-limit) {
my_length+=long;
index_Array.splice(0,1);
}
if (my_length<=limit && my_length>=-limit) {
trace("метраж: " + Number(2500-my_length))
for (var q2:int=0; q2<index_Array.length; q2++) {
trace(cut_Ar[index_Array[q2]])
}
//break;
}
if (j==0) {
index_Array = [];
my_length = 2500;
ind--;
rundown();
}
} else {
break;
}
}
}
rundown();
Цитата:
Сообщение от -De-
ссылка (можно в личку) на риальнэ трубопродавальный сайт =)
|
Серьезно?

могу написать, только сайт мягко говоря убогенький