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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5235 | 回復(fù): 14
打印 上一主題 下一主題

求教各位大大們,這個問題用perl怎么處理 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-02-27 09:37 |只看該作者 |倒序瀏覽
本帖最后由 mingoing 于 2014-02-27 11:31 編輯


7400000 8200000  -747.871582
8200000 8500000  -311.464386
8500000 9100000  -552.063538
9100000 9800000  -691.326904
9800000 10700000  -860.887024
10700000 11500000  -775.908630
11500000 12300000  -748.672424
12300000 13200000  -868.078918
13200000 14100000  -844.211609
14100000 14600000  -531.665039
14600000 15500000  -934.396790
15500000 16300000  -808.178162
16300000 17500000  -1163.265747
17500000 17900000  -425.282043
17900000 18900000  -937.942383
18900000 19600000  -743.132019
19600000 20800000  -1200.120850
20800000 21100000  -285.289520
先上圖,圖中每一行前兩個數(shù)字相當(dāng)于左端點右端點,拿第一行來說,相當(dāng)于在[7400000, 8200000]范圍內(nèi)取值-747.871582。我想得到[8650000,9750000] ,[13250000,13950000],[17650000,18850000]這幾個范圍內(nèi)的值。PS:跨范圍的取加權(quán)平均。{:2_172:}   

論壇徽章:
33
榮譽會員
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT運維版塊每日發(fā)帖之星
日期:2016-04-17 06:23:27操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-24 06:20:0015-16賽季CBA聯(lián)賽之天津
日期:2016-05-06 12:46:59
2 [報告]
發(fā)表于 2014-02-27 09:39 |只看該作者
表示沒看懂.

在兩個整數(shù)區(qū)間里, 你想取個 負數(shù) ... ...

論壇徽章:
0
3 [報告]
發(fā)表于 2014-02-27 09:42 |只看該作者
相當(dāng)于分段函數(shù)吧,前兩個數(shù)是分段函數(shù)的小段定義域回復(fù) 2# q1208c


   

論壇徽章:
8
技術(shù)圖書徽章
日期:2013-09-30 08:51:28技術(shù)圖書徽章
日期:2013-12-11 09:26:39白羊座
日期:2013-12-27 15:27:13金牛座
日期:2014-01-06 09:13:05天蝎座
日期:2014-01-21 14:23:28酉雞
日期:2014-05-09 16:51:12卯兔
日期:2014-08-11 16:49:1515-16賽季CBA聯(lián)賽之八一
日期:2017-08-14 23:24:57
4 [報告]
發(fā)表于 2014-02-27 10:16 |只看該作者
本帖最后由 xiumu2280 于 2014-02-27 10:16 編輯

樓主的意思是不是  每一行取個平均值。
然后按照這個平均值,來算[8650000,9750000] ,[13250000,13950000],[17650000,18850000]這幾個區(qū)域分別的和?

還有不要用圖片給原始數(shù)據(jù)···怎么測試···

論壇徽章:
0
5 [報告]
發(fā)表于 2014-02-27 10:21 |只看該作者
本帖最后由 mingoing 于 2014-02-27 10:22 編輯

這種理解也對{:3_189:} ,數(shù)據(jù):
7400000 8200000  -747.871582
8200000 8500000  -311.464386
8500000 9100000  -552.063538
9100000 9800000  -691.326904
9800000 10700000  -860.887024
10700000 11500000  -775.908630
11500000 12300000  -748.672424
12300000 13200000  -868.078918
13200000 14100000  -844.211609
14100000 14600000  -531.665039
14600000 15500000  -934.396790
15500000 16300000  -808.178162
16300000 17500000  -1163.265747
17500000 17900000  -425.282043
17900000 18900000  -937.942383
18900000 19600000  -743.132019
19600000 20800000  -1200.120850
20800000 21100000  -285.289520
回復(fù) 4# xiumu2280


   

論壇徽章:
0
6 [報告]
發(fā)表于 2014-02-27 10:32 |只看該作者
比如計算[17650000,18850000]范圍內(nèi)的值:
(17900000-17650000)/(18850000-17650000)*(-425.282043)+(18850000-1790000)/(18850000-17650000)*(-937.942383)

論壇徽章:
0
7 [報告]
發(fā)表于 2014-02-27 10:32 |只看該作者
本帖最后由 mingoing 于 2014-02-27 10:46 編輯

比如計算[17650000,18850000]范圍內(nèi)的值:設(shè)L=(18850000-17650000),L1=(17900000-17650000),L2=(18850000-1790000),那么最終得到:L1/L*(-425.282043)+L2/L*(-937.942383)

論壇徽章:
0
8 [報告]
發(fā)表于 2014-02-27 17:11 |只看該作者
我把程序搞成這樣了
  1. open A,"mono_align1\.mlf";
  2. open L,"recout_mon16_phone1\.mlf";
  3. open OUT,">","out.txt";
  4. while (<A>){
  5.         chomp;
  6.         next if /MLF|lab/;
  7.         my ($data1,$data2,$phone1,$score1)=split/\s+/,$_;
  8.         print OUT "$_ ";
  9.         while (<L>){
  10.                 chomp;
  11.                 next if /MLF|rec/;
  12.                 my ($data3,$data4,$phone2,$score2)=split/\s+/,$_;
  13.                 if ($data1>$data3&$data2<$data4){
  14.                         print OUT "$score2\n";
  15.                         last;
  16.                 }
  17.                 if ($data1>$data3&$data2>$data4){
  18.                         my $nnn=($data4-$data1)/($data2-$data1)*$score2;
  19.                         print OUT "\"$_\"\n";
  20.                         &handle($nnn, $data2, $_);
  21. #                        my ($data4,$data5,$phone3,$score3)=split/\s+/,$_;
  22. #                        if ($data2<$data5){
  23. #                                $nnn=$nnn+($data2-$data4)/($data2-$data1)*$score3;
  24. #                                print OUT "$nnn\n";
  25.                                 last;
  26. #                        }
  27.                 }
  28.     print OUT "\n";
  29.         }
  30.        
  31. }

  32. sub handle
  33. {
  34.         my $nnn = shift;
  35.         my $data2 = shift;
  36.         my $yyy = shift;
  37.         open OOO, ">","22.txt";
  38.         my $line = <L>;
  39.         chomp($line);
  40.         print OOO "$line";
  41.         my ($data4,$data5,$phone3,$score3)=split/\s+/,$yyy;
  42.         if ($data2<$data5){
  43.                 $nnn=$nnn+($data2-$data4)/($data2-$data1)*$score3;
  44.                 return;
  45.         }
  46.         return;
  47. }
復(fù)制代碼

論壇徽章:
8
技術(shù)圖書徽章
日期:2013-09-30 08:51:28技術(shù)圖書徽章
日期:2013-12-11 09:26:39白羊座
日期:2013-12-27 15:27:13金牛座
日期:2014-01-06 09:13:05天蝎座
日期:2014-01-21 14:23:28酉雞
日期:2014-05-09 16:51:12卯兔
日期:2014-08-11 16:49:1515-16賽季CBA聯(lián)賽之八一
日期:2017-08-14 23:24:57
9 [報告]
發(fā)表于 2014-02-27 19:52 |只看該作者
本帖最后由 xiumu2280 于 2014-02-27 20:05 編輯
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Data::Dumper;
  5. use File::Basename;


  6. my %hash;
  7. while (<DATA>) {
  8.         chomp;
  9.         my @data = split;
  10.         my $aver = $data[2]/($data[1]-$data[0]);
  11.         my @da = $data[0]..$data[1];
  12.         @hash{@da}= ($aver) x scalar (@da);
  13. }

  14. my @data = ([8650000,9750000],[13250000,13950000],[17650000,18850000]);
  15. foreach my $uniq (@data) {
  16.         my $n = 0;
  17.         foreach my $cell ($uniq->[0]..$uniq->[1]) {
  18.                 $n += $hash{$cell};
  19.         }
  20.         print "$n\n";
  21. }



  22. __DATA__
  23. 7400000 8200000  -747.871582
  24. 8200000 8500000  -311.464386
  25. 8500000 9100000  -552.063538
  26. 9100000 9800000  -691.326904
  27. 9800000 10700000  -860.887024
  28. 10700000 11500000  -775.908630
  29. 11500000 12300000  -748.672424
  30. 12300000 13200000  -868.078918
  31. 13200000 14100000  -844.211609
  32. 14100000 14600000  -531.665039
  33. 14600000 15500000  -934.396790
  34. 15500000 16300000  -808.178162
  35. 16300000 17500000  -1163.265747
  36. 17500000 17900000  -425.282043
  37. 17900000 18900000  -937.942383
  38. 18900000 19600000  -743.132019
  39. 19600000 20800000  -1200.120850
  40. 20800000 21100000  -285.289520
復(fù)制代碼
這個非常耗內(nèi)存。運行這點要2G內(nèi)存··· 如果你都是后面5個0沒用的話可以舍去··· 會節(jié)省很多內(nèi)存
  1. -1055.99505195218
  2. -656.60996723752
  3. -1156.84747864572
復(fù)制代碼

論壇徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午馬
日期:2014-08-06 03:56:58
10 [報告]
發(fā)表于 2014-02-27 20:57 |只看該作者
{:2_172:}是不是
  1. [8650000, 9750000]      = -634.355527
  2. [13250000, 13950000]    = -911.185874
  3. [17650000, 18850000]    = -831.1381455
復(fù)制代碼
  1. #!/usr/bin/perl

  2. my @range = (
  3.           [ 8650000, 9750000 ],
  4.           [ 13250000, 13950000 ],
  5.           [ 17650000, 18850000 ],
  6. );
  7.          
  8. @range = sort { $a->[0] <=> $b->[0] } @range;
  9. my $index = 0;
  10. my @data  = map { [split] } <DATA>;

  11. loop: for my $R (@range) {
  12.     my $L = $R->[1] - $R->[0];
  13.     my $ave;
  14.     for my $i ( $index .. $#data ) {
  15.         next if $R->[0] > $data[$i][1];
  16.         $index = $i;
  17.         my ( $r1, $r2, $v ) = @{ $data[$i] };
  18.         $ave += ( $r2 - $R->[0] ) / $L * $v;

  19.         for my $j ( $index + 1 .. $#data ) {
  20.             my ( $r1, $r2, $v ) = @{ $data[$j] };
  21.             $ave += ( $r2 - $r1 ) / $L * $v and next if $R->[1] > $r2;
  22.             $ave += ( $R->[1] - $r1 ) / $L * $v;
  23.             print "[$R->[0], $R->[1]]\t= $ave\n";
  24.             next loop;
  25.         }
  26.     }
  27. }

  28. __DATA__
  29. 7400000 8200000  -747.871582
  30. 8200000 8500000  -311.464386
  31. 8500000 9100000  -552.063538
  32. 9100000 9800000  -691.326904
  33. 9800000 10700000  -860.887024
  34. 10700000 11500000  -775.908630
  35. 11500000 12300000  -748.672424
  36. 12300000 13200000  -868.078918
  37. 13200000 14100000  -844.211609
  38. 14100000 14600000  -531.665039
  39. 14600000 15500000  -934.396790
  40. 15500000 16300000  -808.178162
  41. 16300000 17500000  -1163.265747
  42. 17500000 17900000  -425.282043
  43. 17900000 18900000  -937.942383
  44. 18900000 19600000  -743.132019
  45. 19600000 20800000  -1200.120850
  46. 20800000 21100000  -285.289520
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP