Skip to main content

check prop lambda

0 likes • Nov 19, 2022
Python
Loading...
Download

More Python Posts

clamp number

CodeCatch
0 likes • Nov 19, 2022
Python
def clamp_number(num, a, b):
return max(min(num, max(a, b)), min(a, b))
clamp_number(2, 3, 5) # 3
clamp_number(1, -1, -5) # -1

combine values

CodeCatch
0 likes • Nov 19, 2022
Python
from collections import defaultdict
def combine_values(*dicts):
res = defaultdict(list)
for d in dicts:
for key in d:
res[key].append(d[key])
return dict(res)
d1 = {'a': 1, 'b': 'foo', 'c': 400}
d2 = {'a': 3, 'b': 200, 'd': 400}
combine_values(d1, d2) # {'a': [1, 3], 'b': ['foo', 200], 'c': [400], 'd': [400]}

Propositional logic with itertools

AustinLeath
0 likes • Nov 18, 2022
Python
from itertools import product
V='∀'
E='∃'
def tt(f,n) :
xss=product((0,1),repeat=n)
print('function:',f.__name__)
for xs in xss : print(*xs,':',int(f(*xs)))
print('')
# p \/ (q /\ r) = (p \/ q) /\ (p \/ r)
def prob1(p,q,r) :
x=p or (q and r)
y= (p or q) and (p or r)
return x==y
tt(prob1,3)
# p/\(q\/r)=(p/\q)\/(p/\r)
def prob2(p,q,r) :
x=p and ( q or r )
y=(p and q) or (p and r)
return x==y
tt(prob2,3)
#~(p/\q)=(~p\/~q)
def prob3(p,q) :
x=not (p and q)
y=(not p) or (not q)
return x==y
tt(prob3,2)
#(~(p\/q))=((~p)/\~q)
def prob4(p, q):
x = not(p or q)
y = not p and not q
return x == y
tt(prob4, 2)
#(p/\(p=>q)=>q)
def prob5(p,q):
x= p and ( not p or q)
return not x or q
tt(prob5,2)
# (p=>q)=((p\/q)=q)
def prob6(p,q) :
x = (not p or q)
y=((p or q) == q)
return x==y
tt(prob6,2)
#((p=>q)=(p\/q))=q
def prob7(p,q):
if ((not p or q)==(p or q))==q:
return 1
tt(prob7,2)
#(p=>q)=((p/\q)=p)
def prob8(p,q):
if (not p or q)==((p and q)==p):
return 1
tt(prob8,2)
#((p=>q)=(p/\q))=p
def prob9(p,q):
if ((not p or q)==(p and q))==p:
return '1'
tt(prob9,2)
#(p=>q)/\(q=>r)=>(p=>r)
def prob10(p,q,r) :
x = not ((not p or q) and (not q or r)) or (not p or r)
return x
tt(prob10, 3)
# (p = q) /\ (q => r) => (p => r)
#answer 1
def prob11(p,q,r) :
x = not((p is q) and (not q or r)) or (not p or r)
return x
tt(prob11, 3)
#(p=q)/\(q=>r)=>(p=>r)
#answer 2
def prob11(p,q,r):
x=(p==q) and (not q or r)
y=not p or r
return not x or y
tt(prob11,3)
#((p=>q)/\(q=r))=>(p=>r)
def prob12(p,q,r):
x=(not p or q) and ( q==r )
y=not p or r
return not x or y
tt(prob12,3)
#(p=>q)=>((p/\r)=>(q/\r))
def prob13(p,q,r):
x=not p or q
y=(not(p and r) or ( q and r))
return not x or y
tt(prob13,3)
#Question#2----------------------------------------
#(p=>q)=>r=p=>(q=>r)
def prob14(p,q,r):
x=(not(not p or q) or r)
y=(not p or (not q or r))
return x==y
tt(prob14,3)
def prob15(p, q):
x = not(p and q)
y = not p and not q
return x == y
tt(prob15, 2)
def prob16(p, q):
x = not(p or q)
y = not p or not q
return x == y
tt(prob16, 2)
def prob17(p):
x = p
y = not p
return x == y
tt(prob17, 1)

sum of powers

CodeCatch
0 likes • Nov 19, 2022
Python
def sum_of_powers(end, power = 2, start = 1):
return sum([(i) ** power for i in range(start, end + 1)])
sum_of_powers(10) # 385
sum_of_powers(10, 3) # 3025
sum_of_powers(10, 3, 5) # 2925

Mad libs generator

CodeCatch
0 likes • Nov 19, 2022
Python
#Loop back to this point once code finishes
loop = 1
while (loop < 10):
#All the questions that the program asks the user
noun = input("Choose a noun: ")
p_noun = input("Choose a plural noun: ")
noun2 = input("Choose a noun: ")
place = input("Name a place: ")
adjective = input("Choose an adjective (Describing word): ")
noun3 = input("Choose a noun: ")
#Displays the story based on the users input
print ("------------------------------------------")
print ("Be kind to your",noun,"- footed", p_noun)
print ("For a duck may be somebody's", noun2,",")
print ("Be kind to your",p_noun,"in",place)
print ("Where the weather is always",adjective,".")
print ()
print ("You may think that is this the",noun3,",")
print ("Well it is.")
print ("------------------------------------------")
#Loop back to "loop = 1"
loop = loop + 1
import copy
begining = [False,False,False,False,False,None,True,True,True,True,True]
#False = black True = white
its = [0]
def swap(layout, step):
layoutCopy = copy.deepcopy(layout)
layoutCopy[(step[0]+step[1])], layoutCopy[step[1]] = layoutCopy[step[1]], layoutCopy[(step[0]+step[1])]
return layoutCopy
def isSolved(layout):
for i in range(len(layout)):
if(layout[i] == False):
return (i >= (len(layout)/2))
def recurse(layout, its, steps = []):
if isSolved(layout):
its[0] += 1
print(layout,list(x[0] for x in steps))
return
step = None
for i in range(len(layout)):
if(layout[i] == None):
if(i >= 1): #If the empty space could have something to the left
if(layout[i - 1] == False):
step = [-1,i]
recurse(swap(layout,step), its, (steps+[step]))
if(i > 1): #If the empty space could have something 2 to the left
if(layout[i - 2] == False):
step = [-2,i]
recurse(swap(layout,step), its, (steps+[step]))
if(i < (len(layout)-1)): #If the empty space could have something to the right
if(layout[i + 1] == True):
step = [1,i]
recurse(swap(layout,step), its, (steps+[step]))
if(i < (len(layout)-2)): #If the empty space could have something to the right
if(layout[i + 2] == True):
step = [2,i]
recurse(swap(layout,step), its, (steps+[step]))
its[0] += 1
#return None
recurse(begining,its,[])
print(its[0])