亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
1234下一頁(yè)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
樓主: jzp520520
打印 上一主題 下一主題

求解不等式算法 [復(fù)制鏈接]

論壇徽章:
0
21 [報(bào)告]
發(fā)表于 2013-12-02 18:54 |只看該作者
回復(fù) 17# rubyish


只能?chē)@為觀(guān)止了,還是看不明白,尤其是嵌套try那里,還是感謝大神,大半夜還給我解答。

論壇徽章:
0
22 [報(bào)告]
發(fā)表于 2013-12-02 22:49 |只看該作者
回復(fù) 20# jason680


    真是大牛!你與rubyish的寫(xiě)法最大不同之處在于:沒(méi)有使用map。是不是map對(duì)perl占用太大?
rubyish的寫(xiě)的非常精練,很酷!對(duì)我們新手來(lái)說(shuō),還是不太懂。

論壇徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17處女座
日期:2014-09-01 09:25:1115-16賽季CBA聯(lián)賽之吉林
日期:2015-12-22 14:01:5215-16賽季CBA聯(lián)賽之廣東
日期:2016-03-08 18:49:422016科比退役紀(jì)念章
日期:2016-07-06 12:19:55
23 [報(bào)告]
發(fā)表于 2013-12-03 00:18 |只看該作者
本帖最后由 stanley_tam 于 2013-12-03 10:04 編輯

湊個(gè)熱鬧,這么多行,應(yīng)該能看得懂些把{:3_188:}
  1. #!perl
  2. package Cut;
  3. use v5.12;
  4. use warnings;
  5. use Moose;
  6. use List::Util qw {max min sum};

  7. has 'sizes' => (
  8.         is => 'rw',
  9.         isa => 'ArrayRef',
  10.         reader => 'get_sizes',
  11.         writer => 'set_sizes',
  12.         default => sub { [] },
  13.         auto_deref => 1,
  14.         required => 1,
  15. );

  16. has 'len' => (
  17.         is => 'ro',
  18.         isa => 'Num',
  19.         reader => 'get_len',
  20.         default => '10',
  21.         required => 1,
  22. );

  23. sub min_cut_times {
  24.         # not accurate....
  25.         my ($self) = @_;
  26.         my $max_size = max $self->get_sizes;
  27.         return int ($self->get_len / $max_size);
  28. }

  29. sub max_cut_times {
  30.         my ($self) = @_;
  31.         my $max_size = min $self->get_sizes;
  32.         return int ($self->get_len / $max_size);
  33. }

  34. sub possible_cut_times {
  35.         my ($self) = @_;
  36.         my $times_aref = [];
  37.         my $pieces = @{$self->get_sizes};
  38.         my $max_cut_times = $self->max_cut_times;
  39.         my $min_cut_times = $self->min_cut_times;

  40.         my $enumerate_max = join ',', 0 .. $max_cut_times;
  41.         my $eval_str = '{$enumerate_max}:' x ($pieces-1) . '{$enumerate_max}';
  42.         $eval_str = q{"} . $eval_str . q{"};

  43.         my @possibles = glob eval $eval_str;

  44.         for my $num (@possibles){
  45.                 my @nums = split /:/, $num;
  46.                 my $sum_of_nums = sum @nums;
  47.                 if ($sum_of_nums <= $max_cut_times and $sum_of_nums >= $min_cut_times) {
  48.                         push @{$times_aref}, \@nums;
  49.                 }
  50.         }

  51.         return $times_aref;
  52. }

  53. no Moose;

  54. 1;

  55. package main;
  56. use v5.12;
  57. use warnings;

  58. my $cut = Cut->new;

  59. # define your sizes here
  60. $cut->set_sizes([1.9, 2.5, 2.6]);

  61. my @sizes = $cut->get_sizes;
  62. my $times_aref = $cut->possible_cut_times;

  63. say join "\t", ('sum', 'remain', @sizes);
  64. for my $time_aref (@{$times_aref}){
  65.         my $sum = 0;

  66.         for my $i (0 .. $#sizes){
  67.                 $sum += $sizes[$i] * $time_aref->[$i];
  68.         }

  69.         if ($sum > 8.1 and $sum <= 10) {
  70.                 # body...
  71.                 my $remain = $cut->get_len - $sum;
  72.                 $remain = sprintf "%0.2f", $remain;
  73.                 say join "\t", ($sum, $remain, @{$time_aref});
  74.         }
  75. }

  76. __END__
復(fù)制代碼

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書(shū)徽章
日期:2014-03-05 01:33:12技術(shù)圖書(shū)徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
24 [報(bào)告]
發(fā)表于 2013-12-03 04:56 |只看該作者
回復(fù) 20# jason680

3Q~ very fast!!
  1. return if($sDiff < 0);
復(fù)制代碼

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書(shū)徽章
日期:2014-03-05 01:33:12技術(shù)圖書(shū)徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
25 [報(bào)告]
發(fā)表于 2013-12-03 04:58 |只看該作者
回復(fù) 23# stanley_tam

不懂 Moose, 先收藏,再慢慢研究,謝謝了。{:3_188:} {:3_188:}
   

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書(shū)徽章
日期:2014-03-05 01:33:12技術(shù)圖書(shū)徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
26 [報(bào)告]
發(fā)表于 2013-12-03 05:00 |只看該作者
回復(fù) 19# kggg

不是
   

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書(shū)徽章
日期:2014-03-05 01:33:12技術(shù)圖書(shū)徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
27 [報(bào)告]
發(fā)表于 2013-12-03 07:29 |只看該作者
本帖最后由 rubyish 于 2013-12-04 02:02 編輯

感謝 jason680   
my fast version:
  1. #!/usr/bin/perl

  2. my $length = 10;
  3. my $count = '001';
  4. my @data = sort { $b <=> $a }
  5.   qw/2.5 2.6 1.9 3.5 2.0 4.0 4.5 5 4.7 3.2/;

  6. print ' ' x 6, join( "\t", 'sum', 'rem', @data ), $/;
  7. print $count++, '| ', join( "\t", @$_ ), $/
  8.   for sort { $b->[0] <=> $a->[0] } collect();

  9. sub collect {
  10.     my ( $max, $check, $t, $i ) = ( $length - $data[-1], 1, 1, -1 );
  11.     my @range = map [ 0 .. $length / $_ ], @data;
  12.     my @elem  = map { $check *= @$_; scalar @$_ } @range;
  13.     my @step  = reverse 1, map { $t = $t * $elem[ -$_ ] } 1 .. $#elem;
  14.     my @collection;

  15.     while ( $i++ < $check ) {
  16.         my @num = map $range[$_][ $i / $step[$_] % $elem[$_] ], 0 .. $#elem;
  17.         my $sum;

  18.         for my $index ( 0 .. $#elem ) {
  19.             $sum += $data[$index] * $num[$index];
  20.             next if $sum <= $length;
  21.             my $jump = ( $elem[$index] - $num[$index] ) * $step[$index];
  22.             $jump > 1 and $i += $jump - 1;
  23.             last;
  24.         }

  25.         $length >= $sum && $sum > $max and push @collection,
  26.           [ sprintf( "%.1f", $sum ), sprintf( "%.2f", $length - $sum ), @num ];
  27.     }
  28.     @collection;
  29. }
復(fù)制代碼

論壇徽章:
145
技術(shù)圖書(shū)徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術(shù)圖書(shū)徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
28 [報(bào)告]
發(fā)表于 2013-12-03 09:57 |只看該作者
回復(fù) 22# jzp520520

It's NOT map function issue in this case
   

論壇徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17處女座
日期:2014-09-01 09:25:1115-16賽季CBA聯(lián)賽之吉林
日期:2015-12-22 14:01:5215-16賽季CBA聯(lián)賽之廣東
日期:2016-03-08 18:49:422016科比退役紀(jì)念章
日期:2016-07-06 12:19:55
29 [報(bào)告]
發(fā)表于 2013-12-03 10:19 |只看該作者
我的是super slow version,尤其是塊數(shù)大于6塊的時(shí)候。哈哈{:3_198:}
回復(fù) 25# rubyish


   

求職 : 軟件工程師
論壇徽章:
3
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-07 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-13 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-05-05 06:20:00
30 [報(bào)告]
發(fā)表于 2013-12-04 07:39 |只看該作者
回復(fù) 12# rubyish


    代碼很難看懂,更加不會(huì)調(diào)優(yōu)了。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP