International System Automation2 Blog
A logic of System Improve Automation
Brought to you by:
taddy-hatty
int i;
int j;
int k;
int l;
int flag;
int seqlen;
intersection insec;
intersection_clear(&insec);
if( a->num >= b->num ) {
insec.num = a->num;
} else
if( a->num < b->num ) {
insec.num = b->num;
}
k = 0;
for(i=0;i<insec.num;i++) {
for(j=0;j<insec.num;j++) {
if(a->elem[i] == b->elem[j] ) {
insec.elem[k] = a->elem[i];
insec.adr_a[k] = i;
insec.adr_b[k] = j;
if(i==j) {
insec.distance[k] = 0;
} else
if(i>j) {
insec.distance[k] = i-j;
} else
if(i<j) {
insec.distance[k] = j-i;
}
b->elem[j] = -1;
k++;
insec.the_number_of_same_elements++;
break;
}
}
}
insec.the_number_of_different_elements
= insec.num - insec.the_number_of_same_elements;
seqlen = 0;
flag = -1;
for(i=insec.num;i>0;i--) {
k = -1;
l = -1;
k = insec.adr_a[i] - insec.adr_a[i-1];
l = insec.adr_b[i] - insec.adr_b[i-1];
if(k==1&&l==1) {
insec.the_sum_of_the_length_of_same_sequences++;
seqlen++;
flag = 1;
} else {
if(flag==1) {
insec.the_sum_of_the_length_of_same_sequences++;
insec.the_number_of_same_sequences++;
seqlen++;
insec.seq[i] = seqlen;
seqlen = 0;
}
flag = -1;
}
}
if(flag==1) {
insec.the_sum_of_the_length_of_same_sequences++;
insec.the_number_of_same_sequences++;
seqlen++;
insec.seq[0] = seqlen;
}
insec.the_degree_of_similarity =
insec.the_number_of_same_elements -
insec.the_number_of_different_elements +
insec.the_number_of_same_sequences +
insec.the_sum_of_the_length_of_same_sequences;