Skip to content
Snippets Groups Projects
Commit 7f967042 authored by Lucy Anne Patton's avatar Lucy Anne Patton :speech_balloon:
Browse files

Uploaded checks file

parent 808ba51c
No related branches found
No related tags found
No related merge requests found
def valid_ns1d0(ns1d0):
# rule 0
n = (len(ns1d0) * 2) - 1
for val in ns1d0:
if val > n:
return False
# rule 1
if ns1d0[0] != 0 or ns1d0[-1] != 1:
return False
# rule 2
if (n+1)/2 in ns1d0:
return False
# rule 3
for i in range(2, n):
if i != (n+1) / 2:
inverseI = (1- i) % n
if (inverseI not in ns1d0) and (i not in ns1d0):
return False
if (inverseI in ns1d0) and (i in ns1d0):
return False
# rule 4
# get differences
diffs = []
for i in range(1, len(ns1d0)):
diffs.append((ns1d0[i] - ns1d0[i-1]) % n)
#check differences
for j in range(1, n):
inverseJ = (-j) % n
if (inverseJ not in diffs) and (j not in diffs):
return False
if (inverseJ in diffs) and (j in diffs):
return False
return True
def valid_triple(triple_system, order):
# generate pairs
pairs = []
for i in range(order):
for j in range(i+1, order):
pairs.append([i, j])
# check each triple
for triple in triple_system:
pair1 = sorted((triple[0], triple[1]))
pair2 = sorted((triple[1], triple[2]))
pair3 = sorted((triple[0], triple[2]))
if pair1 in pairs and pair2 in pairs and pair3 in pairs:
# hasn't been seen yet
pairs.remove(pair1)
pairs.remove(pair2)
pairs.remove(pair3)
else:
# one of these has either a) been seen or b) is an invalid pair for this order, so the system is invalid
print(pair1, pair1 in pairs, "\n", pair2, pair2 in pairs, "\n", pair3, pair3 in pairs)
return False
return True
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment