Guest User

Untitled

a guest
Sep 8th, 2021
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. #!env raku
  2.  
  3. my %weight-usage = (
  4. a => 100,
  5. b => 120.1,
  6. c => 240.5,
  7. d => 445.7,
  8. );
  9.  
  10. sub MAIN (
  11. Num() $total-weight,
  12. Int() :$max-amount = 100,
  13. ) {
  14. my @allowed-weight = 'a' .. 'c';
  15. my @allowed-combs = @allowed-weight.map({
  16. my $max-plots = Int($total-weight / %weight-usage{$_});
  17. my $size = %weight-usage{$_};
  18. (0 .. $max-plots).map({ $(($size xx $_).List) });
  19. });
  20. my @all-combos = cross(@allowed-combs.map(*.flat));
  21. my %result = @all-combos.hyper.map({
  22. my @combo = $_[];
  23. my $k = @combo[]:p.map({ "{.key}={.value.List.elems}" }).join(',');
  24. my $sum = @combo.map(|*).sum;
  25. ($k => $sum);
  26. });
  27. }
  28.  
Advertisement
Add Comment
Please, Sign In to add comment