Chinaunix首页 | 论坛 | 博客
  • 博客访问: 265874
  • 博文数量: 54
  • 博客积分: 35
  • 博客等级: 民兵
  • 技术积分: 729
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-09 10:35
文章分类

全部博文(54)

文章存档

2014年(37)

2013年(17)

分类: LINUX

2013-11-28 16:04:41

原帖:处理前:
0 1 2 3
2 3 4
1 6 7
0 6

处理后:
0 1 1 1 0 0 1 0
1 0 1 1 0 0 1 1
1 1 0 1 1 0 0 0
1 1 1 0 1 0 0 0
0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 1
0 1 0 0 0 0 1 0

处理规则:
关于邻接矩阵的介绍大家可以百度一下,我这里只给出处理方法。

点击(此处)折叠或打开

  1. [root@localhost ~]# cat i
  2. 0 1 2 3
  3. 2 3 4
  4. 1 6 7
  5. 0 6
  6. [root@localhost ~]# awk '{for(i=1;i<=NF;i++)for(j=1;j<=NF;j++)if(j!=i)a[$i,$j]=1}END{for(i=0;i<=7;i++){for(j=0;j<=7;j++)printf a[i,j]?"1 ":"0 ";print ""}}' i
  7. 0 1 1 1 0 0 1 0
  8. 1 0 1 1 0 0 1 1
  9. 1 1 0 1 1 0 0 0
  10. 1 1 1 0 1 0 0 0
  11. 0 0 1 1 0 0 0 0
  12. 0 0 0 0 0 0 0 0
  13. 1 1 0 0 0 0 0 1
  14. 0 1 0 0 0 0 1 0
  15. [root@localhost ~]#

点击(此处)折叠或打开

  1. #!/usr/bin/perl

  2. while (<DATA>) {
  3.         split;
  4.         for ($i=0;$i<@_;$i++) {
  5.                 for ($j=0;$j<@_;$j++) {
  6.                         if ($i!=$j) {
  7.                                 $h{$_[$i]}{$_[$j]} = 1;
  8.                         }
  9.                 }
  10.         }
  11. }

  12. END {
  13.         for ($i=0;$i<=7;$i++) {
  14.                 for ($j=0;$j<=7;$j++) {
  15.                         $h{$i}{$j} = 0 if ! exists $h{$i}{$j};
  16.                         $str = defined $str ? $str . " " . $h{$i}{$j} : $h{$i}{$j};
  17.                 }
  18.                 print "$str\n";
  19.                 undef $str;
  20.         }
  21. }

  22. __DATA__
  23. 0 1 2 3
  24. 2 3 4
  25. 1 6 7
  26. 0 6



阅读(1750) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~