in reply to Re^4: Help Me in following code ::
in thread Help Me in following code ::

One last try.

Does that cover it?

Questions:


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP an inspiration; A true Folk's Guy

Replies are listed 'Best First'.
Re^6: Help Me in following code ::
by gskoli (Novice) on Apr 14, 2010 at 04:48 UTC
    Yes now you got that ,
    Your Que. are also valid
    We can take group of 4 or 5 or 6 number
    and without duplicates and
    totals between 840 & 900
    And How many groups : till the all number comes in that

    and please go through the array i have mention
    @A_services
    pick data from that only
    its value having some duplicate entry thats ok
    But index of that Array value is unique
    , We want that in group of 4 or 5 or 6 till all the value from @A_services covers

    Thanks again

      Your problem is a variation upon the Bin packing problem.

      Unfortunately, your particular constraints--variable size bins & constrained number of items per bin--do not fit with either of the bin packing solutions on cpan: Algorithm::BinPack & Algorithm::Bucketize.

      I think now we have clarified what the problem is that you are trying to solve, it might be better to post a new top-level node--perhaps I should do that on your behalf to ensure it is clear--so that the other monks with more CS chops than I might take a second look at your problem.

      I have some thoughts on it and might post something here later.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        Thanks
        Please do it
        Post it on my behalf

        Thanks again
        Hi
        Yesterday i have tried something like this
        my @only_unique = (); my $index1 = scalar(@new_lot)+1; #my $total_first = 0; my @array_range = (); my @temp_first = (); my @Result_array =(); my @new_lot_dup = @new_lot; my $insert_flag = 0; do { my $total_first = 0; my @temp_first = (); my @array_range = (); m +y @Result_array =(); for(my $ab = 0;$ab <6 ;$ab++){ my $random_one = int(rand(@new_lot_dup)); if($random_one eq 0){$random_one = int(rand(@new_lot_dup)) +;} print $random_one."_::_".$A_services[$random_one-1]."\n"; $total_first = $total_first+ $A_services[$random_one-1]; push(@temp_first,$random_one); if(($ab >2) &&($ab<6) ){ if(($total_first gt 840) && ($total_first lt 900)){ push(@array_range,scalar(@temp_first)); print +"\n".$total_first."_:"."@array_range".":_ "."@temp_first"."\n\n"; foreach (@temp_first){push(@Result_array,$_);} + $insert_flag = 1; last; } } } } until($insert_flag eq 1); my$one = 0; do{ $one++; &Get_Other_Group(); } until($one eq $index1); sub Get_Other_Group() { my $insert_flag_inner = 0; do{ my $total_second = 0; my @temp_second = (); for(my $vb = 0;$vb<6;$vb++) { my $random_two = int(rand(@new_lot_dup)); if($random_two eq 0){$random_two = int(rand(@new_l +ot_dup));} #print $vb."IN FUNCTION ::".$random_two."_::_" +.$A_services[$random_two-1]."\n"; $total_second = $total_second+ $A_services[$random +_two-1]; push(@temp_second,$random_two); ##### __ This is to Delete Duplicate Entry___# #undef %saw; #@temp_second = grep(!$saw{$_}++, @temp_second); if(($vb >2) &&($vb<6) ) { print $vb."_::_ "; if(($total_second gt 840) && ($total_second + lt 900)) { my $count_repeat = 0; print $total_second +."****"."@temp_second"."\n"; for(my $mb = 0;$mb<scalar(@temp_second +);$mb++) { for(my $cb = 0 ; $cb < scalar(@Res +ult_array);$cb++) { if($temp_second[$mb] eq $R +esult_array[$cb]){ $count_rep +eat++; } } } if($count_repeat eq 0){ push(@array_range,scalar(@temp_sec +ond)); print "\n MAAAAA KAAAALI".$total_second."_:"."@array_range"."_ +_##_ "."@temp_second"."\n\n"; foreach (@temp_second){push(@Resul +t_array,$_);} $insert_flag_inner = 1; last; } } } } }until($insert_flag_inner eq 1); } print "\n"."@array_range"."_::_"."@Result_array"."\n"; print "+++++++++++++++++++++\n\n"; my $loop_limit = 0; for (my $gh = 0;$gh <scalar(@array_range);$gh++){ my $disp_total = 0; for(my $ch = 0;$ch <$array_range[$gh];$ch++){ my $t_val = $Result_array[$loop_limit]; $disp_total = $disp_total+$A_services[$t_val-1]; print "$loop_limit _:: _".$t_val."_::_".$A_service +s[$t_val-1]." "; $loop_limit++; } print $disp_total."\n"; }