Chinaunix

标题: 请教大家一个算法的实现 [打印本页]

作者: flint1985    时间: 2009-11-11 19:58
标题: 请教大家一个算法的实现
我有一个文件 是5000多行 24列的 其中每行的数字分别由0和1组成 中间由tab隔开。

现在我想做一个运算 比如第一行是 1 0 1 1 第二行是1 1 0 0
经过运算后
第一行 第一个数 为 |v1-v1|=|1-1|+|0-0|+|1-1|+|1-1|=0
第一行 第二个数 为 |v1-v2|=|1-1|+|0-1|+|1-0|+|1-0|=3
以此类推

请问如何实现
作者: cu_eagle    时间: 2009-11-11 20:08
看不懂,你还不如把文件和预期结果贴出来
作者: haimming    时间: 2009-11-11 20:27
是不是列相减再求和?
作者: blackold    时间: 2009-11-11 20:35
标题: 回复 #1 flint1985 的帖子
只两行,如何类推?
第三行是什么?
为什么都是第一行?第一行有几个数?

搞清楚用awk就可以解决了。
作者: ywlscpl    时间: 2009-11-11 21:17
  1. awk -F '\t' 'NR>1{for (i=1;i<=NF;i++) if (n[i]!=$i) m++;print 0"\t"m}{for (i=1;i<=NF;i++) n[i]=$i;m=0}' file   
复制代码

[ 本帖最后由 ywlscpl 于 2009-11-11 21:22 编辑 ]
作者: beginner-bj    时间: 2009-11-11 23:48
就是异或后再求和
有些平台的awk有xor函数




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2