day 03! messy code

This commit is contained in:
sejo 2021-12-02 23:40:49 -06:00
parent f7184c9dd1
commit 2188c4ba2b
3 changed files with 111 additions and 0 deletions

24
03/03.awk Normal file
View File

@ -0,0 +1,24 @@
NR==1{ n = length($0); print n }
{
for(i=1; i<=n;i++){
c[i] += substr($1,i,1)
}
}
END{
print NR
gamma = ""
epsilon = ""
g = 0
e = 0
for(i=1; i<=n; i++){
gamma = gamma (c[i]>NR/2)
g += lshift(c[i]>NR/2,n-i)
epsilon = epsilon (c[i]<NR/2)
e += lshift(c[i]<NR/2,n-i)
}
print gamma, epsilon
print g, e, g*e
# print
}

73
03/03_2.awk Normal file
View File

@ -0,0 +1,73 @@
NR==1{ n = length($0); }
{
a[NR] = $0
b[NR] = $0
ocount += substr($1,1,1)
}
END{
gamma = ""
epsilon = ""
g = 0
e = 0
len = NR
count = ocount
for(nbit = 1; nbit<=n; nbit++){
bit = count>=len/2
print nbit, "bit", bit
delete sel
i=1
count = 0
for(r=1;r<=len;r++){
print a[r]
if( substr(a[r],nbit,1) == bit ){
sel[i] = a[r]
count += substr(a[r],nbit+1,1)
i++
}
}
delete a
for(i=1;i<=length(sel);i++){
a[i] = sel[i]
}
len = length(sel)
print length(sel)
if (len == 1)
break
}
oxygen = sel[1]
len = NR
count = ocount
for(nbit = 1; nbit<=n; nbit++){
bit = count<len/2
print nbit, "bit", bit
delete sel
i=1
count = 0
for(r=1;r<=len;r++){
print b[r]
if( substr(b[r],nbit,1) == bit ){
sel[i] = b[r]
count += substr(b[r],nbit+1,1)
i++
}
}
delete b
for(i=1;i<=length(sel);i++){
b[i] = sel[i]
}
len = length(sel)
print length(sel)
if (len==1)
break
}
co2 = sel[1]
print oxygen, co2
for(i=1;i<=n;i++){
o += lshift( substr(oxygen,i,1), n-i)
c += lshift( substr(co2,i,1), n-i)
}
print o, c, o*c
}

14
03/Makefile Normal file
View File

@ -0,0 +1,14 @@
1t:
awk -f 03.awk test
1i:
awk -f 03.awk input
2t:
awk -f 03_2.awk test
2i:
awk -f 03_2.awk input
paste:
xclip -sel c -o > test