
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
WRITE THIS FUNCTION:
CODE SHOULD BE IN PYTHON:
import random
def value_equality(e, f, num_samples=1000, tolerance=1e-6):
"""Return True if the two expressions self and other are numerically
equivalent. Equivalence is tested by generating
num_samples assignments, and checking that equality holds
for all of them. Equality is checked up to tolerance, that is,
the values of the two expressions have to be closer than tolerance.
It can be done in less than 10 lines of code."""
# YOUR CODE HERE
Should pass these test cases:
assert value_equality('x', 'x')
assert value_equality(3, 3)
assert not value_equality(3, 'x')
e1 = ('+', ('*', 'x', 1), ('*', 'y', 0))
e2 = 'x'
assert value_equality(e1, e2)
e3 = ('/', ('*', 'x', 'x'), ('*', 'x', 1))
e3b = ('/', ('*', 'x', 'y'), ('*', 'x', 1))
assert value_equality(e1, e3)
assert not value_equality(e1, e3b)
e4 = ('/', 'y', 2)
assert not value_equality(e1, e4)
assert not value_equality(e3, e4)
e5 = ("+", "cat", ("-", "dog", "dog"))
assert value_equality(e5, "cat")
![[2]
Os
class IllegalOperator(Exception):
pass
Let us define a helper function calc,which takes as argument an operator and two numbers, and computes the required operation. It will make
it easier to write the rest of the code.
def calc(op, left, right):
if op == "+":
return left + right
elif op ==
"_":
return left -
right
elif op ==
"*":
return left * right
elif op == "/":
return left / right
else:
raise IllegalOperator(op)
With this, we can write our compute method as follows.
[ 4] def compute(e):
if isinstance(e, tuple):
# We have an expression.
op, 1, r = e
# We compute the subexpressions.
1l = compute(1)
rr = compute(r)
# And on the basis of those, the whole expression.
return calc (op, 11, rr)
else:
# base expression; just return the number.
return e](https://content.bartleby.com/qna-images/question/ecf10a40-9173-4876-b1dc-0585f27b87b2/3e52b1b8-a38b-4352-8357-6caf6025ace3/6186z5r_thumbnail.png)
Transcribed Image Text:[2]
Os
class IllegalOperator(Exception):
pass
Let us define a helper function calc,which takes as argument an operator and two numbers, and computes the required operation. It will make
it easier to write the rest of the code.
def calc(op, left, right):
if op == "+":
return left + right
elif op ==
"_":
return left -
right
elif op ==
"*":
return left * right
elif op == "/":
return left / right
else:
raise IllegalOperator(op)
With this, we can write our compute method as follows.
[ 4] def compute(e):
if isinstance(e, tuple):
# We have an expression.
op, 1, r = e
# We compute the subexpressions.
1l = compute(1)
rr = compute(r)
# And on the basis of those, the whole expression.
return calc (op, 11, rr)
else:
# base expression; just return the number.
return e
![[8] def simplify(e):
if isinstance(e, tuple):
op, l, r = e
# We simplify the children expressions.
11 = simplify( Add text cell
simplify(r)
rr =
# We compute the expression if we can.
if isnumber(ll) and isnumber(rr) :
return calc(op, ll, rr)
else:
return (op, l1, rr)
else:
# Leaf. No simplification is possible.
return e](https://content.bartleby.com/qna-images/question/ecf10a40-9173-4876-b1dc-0585f27b87b2/3e52b1b8-a38b-4352-8357-6caf6025ace3/oi1eawl_thumbnail.png)
Transcribed Image Text:[8] def simplify(e):
if isinstance(e, tuple):
op, l, r = e
# We simplify the children expressions.
11 = simplify( Add text cell
simplify(r)
rr =
# We compute the expression if we can.
if isnumber(ll) and isnumber(rr) :
return calc(op, ll, rr)
else:
return (op, l1, rr)
else:
# Leaf. No simplification is possible.
return e
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by stepSolved in 3 steps with 1 images

Knowledge Booster
Similar questions
- Could you solve this Question please? Write a function called has_duplicates that takes a string parameter and returns True if the string has any repeated characters. Otherwise, it should return False. Implement has_duplicates by creating a histogram using the histogram function above. Do not use any of the implementations of has_duplicates that are given in your textbook. Instead, your implementation should use the counts in the histogram to decide if there are any duplicates. Write a loop over the strings in the provided test_dups list. Print each string in the list and whether or not it has any duplicates based on the return value of has_duplicates for that string. For example, the output for "aaa" and "abc" would be the following. aaa has duplicatesabc has no duplicates Print a line like one of the above for each of the strings in test_dups. Obs:Copy the code below into your program def histogram(s): d = dict() for c in s: if c not in d: d[c] =…arrow_forwardWrite a function to calculate the hypotenuse using Pythagorean theorem: = Va? + b?) To do this you will need to use a function to calculate the square root of a number. We need to import this function from a package called numpy (numerical python), and this packages is imported and given the shortname np by calling import numpy as np. You only need to do this once and the standard convention is to import all the packages we need at the top of file. To calculate the square root of a number, x , you would type, np.sqrt(x) , e.g. np. sqrt(4) would give you 2. Use the cell below to try out numpy's square root function. In [ ]: import numpy as np In [ ]: # use this cell to play around with np. sqrt() Finish the function below so that it calculates the hypotenuse In [ ]: # This function calculates the hypotenuse def calc_hypotenuse(a,b): 'uses pythagorus a: first argument b: second argument # YOUR CODE HERE raise NotImplementedError() return c In [ ]: calc_hypotenuse(3,4) In [ ]: assert…arrow_forwardComplete the function in C++.arrow_forward
- In Python, Compute the: sum of squares total (SST), sum of squares regression (SSR), sum of squares error(SSE), and the r, R^2 values. You can use the sum() and mean() built-in functions. Here are the x and y values to use. x = [-5,-1,3,7,5,10] y = [-10,-3,5,8,7,10]arrow_forwardHi can check my code below and see whether it has meet the following, if not kindly assist and correct it for me. a). Recursive function in Java that accepts an integer as input and returns 1 + 1/2 + 3 + 1/4 + ...(n or 1/n). b). The answer is the sum of the odd integers from 1 to n plus the sum of the reciprocals of the even integers. Thank you. public class Main {public static double sum(int n) {if (n <= 0) {return 0;} else if (n % 2 == 0) {return 1.0 / n + sum(n - 1);} else {return n + sum(n - 1);}}public static void main(String[] args) {System.out.println(sum(5));}}arrow_forwardIn C++ only Today is the birthday of Rajesh. He wants to buy sweets for his friends so he went to the Chef sweet shop. He has X amount of cash with him. The pricing of sweets is as follows. If he selects N sweets and places them in a single line then the price of the ith sweet from left is i². He wants to maximize his purchase of sweets to share with his friends. Can you help him? Chef has a total of 106 sweets. Input 1 42 Output 4arrow_forward
- make a C program that implements the "guess my number" game. The computer chooses a random number using the following random generator function srand(time(NULL)); int r = rand() % 100 + 1; that creates a random number between 1 and 100 and puts it in the variable r. (Note that you have to include <time.h>) Then it asks the user to make a guess. Each time the user makes a guess, the program tells the user if the entered number is larger or smaller than its number. The user then keeps guessing till he/she finds the number. If the user doesn't find the number after 10 guesses, a proper game over message will be shown and the actual guess is revealed. If the user makes a correct guess in its allowed 10 guesses, then a proper message will be shown and the number of guesses the user made to get the correct answer is also printed. After each correct guess or game over, the user decides to play again or quit and based on the user choice, the computer will make another guess and…arrow_forward]: Write a piece of code that calculates the uncertainty SP from the error propagation rule for sums, SP = 2√√√(SL)² + (SW)² A few hints: Again, you're translating the above equation into code. • Your result should be stored in a variable uncertainty_P_errorprop • For the square root function, use np. sqrt() • For squares, use ** #YOUR CODE HERE raise Not ImplementedError() ]: ▼ # Print the uncertainty print ("uncertainty of circumference P from error propagation: 11 , uncertainty_P_errorprop)arrow_forwardint getMax(int arr[], int n) { intmx=arr[0]; for (inti=1; i<n; i++) if (arr[i] >mx) mx=arr[i]; returnmx; } Can u give me the code for this one as well....this is the first function and countsort is the secondarrow_forward
arrow_back_ios
arrow_forward_ios
Recommended textbooks for you
- Computer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Concepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningPrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY

Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON

Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science

Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning

Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning

Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education

Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY