免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5391 | 回复: 19
打印 上一主题 下一主题

求方法,检查一组数据的单调性 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-31 10:50 |只看该作者 |倒序浏览
本帖最后由 cecial 于 2014-10-31 11:14 编辑

value key1 key2 key3 key4
value1 k1v1 k2v1 k3v1 k4v1
value2 k1v1 k2v2 k3v1 k4v1
value3 k1v2 k2v1 k3v1 k4v1
value4 k1v2 k2v2 k3v2 k4v1
value5 k1v3 k2v3 k3v2 k4v1


如表格所示:
1. 每个value都有key1~4对应。
2. 现在要研究value对每个key的单调性检查
    a. value对key1的单调性:其他key2~4取值就必须是一样的,上面表格中,比如value1/3对应的key2~4都一样,只有key1不一样,这时,我们就可以检查这个单调性
    b. value对key2:只能选value1/2, key1/3/4都一样,只有key2不一样,可以检查单调性

请大家看看有没有办法?或者现成的模块提供帮助的,谢谢!!!


进阶要求:
1. key 会比4个多,10个以内
2. value会很多,所要考虑一下效率

论坛徽章:
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
2 [报告]
发表于 2014-10-31 12:02 |只看该作者
但是这个问题太悲催了
乍看之下,其实这可能不难,但我觉得难的是明白这项问题。

好吧 我从头到尾没看懂什么。这检查这个单调性啥意思?说实话尼玛我搞不清楚啊。

你能解释一下吗?{:2_168:}

比如,你的输出是什么?以及如何检查呢?



回复 1# cecial


   

论坛徽章:
0
3 [报告]
发表于 2014-10-31 13:24 |只看该作者
回复 2# pitonas

哈哈,不好意思,没说明白
单调性指的是一组数据随坐标一直增加或者减少。

就是value随key的增加,一直增加或者减少。

   

论坛徽章:
0
4 [报告]
发表于 2014-10-31 13:26 |只看该作者
回复 3# cecial

检查单调性,可以自己写一个子程序。

输出可以显示, 其他key固定,value随另外key的规律是什么(或者是否单调)


   

论坛徽章:
1
羊年新春福章
日期:2015-04-28 20:40:58
5 [报告]
发表于 2014-10-31 13:40 |只看该作者
不知道有没有猜对你的意思~
  1. #!/usr/bin/perl  -w
  2. use strict;
  3. my %hash;
  4. while (<DATA>) {
  5.    chomp;
  6.    my ($k,@v) = split /\s+/,$_;
  7.    push @{$hash{$k}}, [@v];
  8. }
  9. foreach my $k (sort keys %hash) {
  10.          print "$k\t";
  11.          my %h;
  12.          for my $v (sort @{$hash{$k}}) {
  13.                 for my $p (@$v) {
  14.                  $h{$p}++;
  15.                  }
  16.         }
  17.       foreach my $y (sort keys %h) {
  18.       print "$y\n" if $h{$y} == 1;
  19. }
  20. }


  21. __DATA__
  22. value1  1  1  1  2
  23. value2  2  2  2  3
  24. value3  3  3  3  4
  25. value4  5  5  5  6
复制代码
回复 1# cecial


   

论坛徽章:
0
6 [报告]
发表于 2014-10-31 13:53 |只看该作者
我不知道這樣的解釋對不對

你的問題應該是

把最左邊的value想成不同的函數好了

比方說
value x=0 x=1 x=-1 x=2
y=0 0 0 0 0
y=x 0 1 1 2
y=x^2 0 1 1 4
y=x-x 0 0 2 0

這樣你會發現

當你想找 y=0和 y=x-x的差別的時候

你要帶 X=-1進去(因為X=0 or 1 or 2都會得到一樣的結果)

反過來說

當你要看x=2什麼時候可以"唯一"區別

你要用 y=x和 y=x^2來檢測

你想做的是這件事嗎?

论坛徽章:
0
7 [报告]
发表于 2014-10-31 15:06 |只看该作者
本帖最后由 cecial 于 2014-10-31 15:11 编辑
  1.         rpb        cps        cm        bk        be        re        cd        dr        pg        vt        corner        value
  2. t_clk_r_q_r        4        64        8        1        1        0        1        0        0        LOW        tt0p9v25c        0.251103449
  3. t_clk_r_q_r        16        64        8        1        1        0        1        0        0        LOW        tt0p9v25c        0.251103449
  4. t_clk_r_q_r        256        64        8        1        1        0        1        0        0        LOW        tt0p9v25c        0.352321297
  5. t_clk_r_q_r        4        64        8        2        1        0        1        0        0        LOW        tt0p9v25c        0.252463164
  6. t_clk_r_q_r        16        64        8        2        1        0        1        0        0        LOW        tt0p9v25c        0.252463164
  7. t_clk_r_q_r        256        64        8        2        1        0        1        0        0        LOW        tt0p9v25c        0.364858806
  8. t_clk_r_q_r        4        64        8        4        1        0        1        0        0        LOW        tt0p9v25c        0.267625394
  9. t_clk_r_q_r        16        64        8        4        1        0        1        0        0        LOW        tt0p9v25c        0.267625394
  10. t_clk_r_q_r        256        64        8        4        1        0        1        0        0        LOW        tt0p9v25c        0.406867562
  11. t_clk_r_q_r        4        64        8        8        1        0        1        0        0        LOW        tt0p9v25c        0.295173074
  12. t_clk_r_q_r        16        64        8        8        1        0        1        0        0        LOW        tt0p9v25c        0.295173074
  13. t_clk_r_q_r        128        64        8        8        1        0        1        0        0        LOW        tt0p9v25c        0.381715044
  14. t_clk_r_q_r        4        16        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.239865467
  15. t_clk_r_q_r        16        16        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.239865467
  16. t_clk_r_q_r        256        16        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.334503449
  17. t_clk_r_q_r        4        64        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.246990371
  18. t_clk_r_q_r        16        64        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.246990371
  19. t_clk_r_q_r        256        64        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.344735256
  20. t_clk_r_q_r        4        640        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.574816686
  21. t_clk_r_q_r        16        640        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.574816686
  22. t_clk_r_q_r        256        640        8        1        1        0        0        0        1        LOW        tt0p9v25c        0.637873810
  23. t_clk_r_q_r        16        16        4        1        0        0        1        0        1        LOW        tt0p9v25c        0.227217952
  24. t_clk_r_q_r        16        64        4        1        0        0        1        0        1        LOW        tt0p9v25c        0.234916595
  25. t_clk_r_q_r        16        640        4        1        0        0        1        0        1        LOW        tt0p9v25c        0.563499584
  26. t_clk_r_q_r        16        16        8        1        0        0        1        0        1        LOW        tt0p9v25c        0.230576160
  27. t_clk_r_q_r        16        64        8        1        0        0        1        0        1        LOW        tt0p9v25c        0.238391300
  28. t_clk_r_q_r        16        640        8        1        0        0        1        0        1        LOW        tt0p9v25c        0.566545102
  29. t_clk_r_q_r        16        16        16        1        0        0        1        0        1        LOW        tt0p9v25c        0.242876258
  30. t_clk_r_q_r        16        64        16        1        0        0        1        0        1        LOW        tt0p9v25c        0.242876258
  31. t_clk_r_q_r        16        640        16        1        0        0        1        0        1        LOW        tt0p9v25c        0.570419344
  32. t_clk_r_q_r        4        16        4        1        1        0        1        0        1        LOW        tt0p9v25c        0.241162939
  33. t_clk_r_q_r        16        16        4        1        1        0        1        0        1        LOW        tt0p9v25c        0.241162939
  34. t_clk_r_q_r        16        16        4        1        1        0        1        0        1        LOW        tt0p9v25c        0.241162939
  35. t_clk_r_q_r        256        16        4        1        1        0        1        0        1        LOW        tt0p9v25c        0.340888110
  36. t_clk_r_q_r        4        64        4        1        1        0        1        0        1        LOW        tt0p9v25c        0.248889601
复制代码
上图只是部分数据。
可以先忽略key的值是字符的单调性检查(vt和corner列)
1. 要检查t_clk_r_q_r随rpb的单调性,其他的key取值就必须一样,这样只有一个key(rpb)是变化的,我们就可以检查value随rpb的单调性
2. 同理可以检查其他的

附件:
test.rar (48.77 KB, 下载次数: 7)

论坛徽章:
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
8 [报告]
发表于 2014-10-31 15:09 |只看该作者
这个问题有点意思。
是酱.我想试下练习练习写写看 ~ {:2_172:}


现在有了源数据,但缺乏的是输出结果。和不知道要做什么。

这个主意怎么样?
还是请你向我们展示你的输出,然后解释为什么输出就是酱。

我猜它。它将更容易理解一点。

谢谢了。

论坛徽章:
0
9 [报告]
发表于 2014-10-31 15:19 |只看该作者
本帖最后由 cecial 于 2014-10-31 15:22 编辑

回复 8# pitonas
请看上一贴的数据,
比如前3个数据,rpb变化是4,16,256。其他都是固定的。
我们的检查输出就可以这样

至于输出结果,比如,可以这样。(单调增:只要后面一个数据大于等于前面那个数据,就认为是单调增,反之,小于等于可以理解成单调减)
  1.                 cps        cm        bk        be        re        cd        dr        pg        vt        corner
  2. t_clk_r_q_r        64        8        1        1        0        1        0        0        LOW        tt0p9v25c
  3. rpb        16        64        256                                                       
  4. value        0.251103449        0.251103449        0.352321297                                                       
  5. trend        increasing                                                                       
复制代码

论坛徽章:
0
10 [报告]
发表于 2014-10-31 15:23 |只看该作者
回复 6# afukada

不太一样,请看下面的源数据


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP