comp-think / 2023-2024

The GitHub repository containing all the material related to the Computational Thinking and Programming course of the Digital Humanities and Digital Knowledge degree at the University of Bologna (a.a. 2023/2024).
14 stars 0 forks source link

Lecture "Recursion", exercise 1 #24

Open essepuntato opened 7 months ago

essepuntato commented 7 months ago

Define a recursive function def exponentiation(base_number, exponent) for implementing the exponentiation operation. Test (by implementing the related test case) it on the following inputs: 34, 171, and 20.

frammenti commented 7 months ago
def test_exponentiation(base_number, exponent, expected):
    result = exponentiation(base_number, exponent)
    if expected == result:
        return True
    else:
        return expected, result

def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        # Recursive call that reads as x^n = x * x^(n-1) = x * x * x^(n-2) until n reaches 0:
        # x^n = x n times * x^0 = x n times * 1
        result = base_number * exponentiation(base_number, exponent-1)
    return result

print(test_exponentiation(3,4,81))
print(test_exponentiation(17,1,17))
print(test_exponentiation(2,0,1))
print(test_exponentiation(-5,2,25)) # With negatives, result is positive if exponent is even
print(test_exponentiation(-5,3,-125)) # Result is negative if exponent is odd
Liber-R commented 7 months ago

Screenshot 2023-11-20 102228

lucreziapograri commented 7 months ago
#Test case
def test_exponentation(base_number, exponent, expected):
    if exponentiation(base_number, exponent) == expected:
        return True
    else:
        return False

#Algorithm
def exponentiation(base_number, exponent):
    # Base case: when exponent is 0, result is 1
    if exponent == 0:
        return 1
    # Recursive case: multiply base_number by the result of exponentiation with a reduced exponent
    else:
        return base_number * exponentiation(base_number, exponent - 1)

print(test_exponentation(3, 4, 81))
print(test_exponentation(17, 1, 17))
print(test_exponentation(2, 0, 1))
enricabruno commented 7 months ago
# test function
def test_exponentiation(base_number, exponent, expected):
    result = exponentiation(base_number, exponent)
    if result == expected:
        return True
    else:
        return False

# function
def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        return base_number * exponentiation(base_number, exponent-1)

# three tests run
print(test_exponentiation(3, 4, 81)) # True
print(test_exponentiation(17, 1, 17)) # True
print(test_exponentiation(2, 0, 1)) # basic case
Chiaramartina commented 7 months ago
Schermata 2023-11-20 alle 15 11 01
valetedd commented 7 months ago
#Ex 1 Recursion

def test_exponentiation(base_number, exponent, expected):
    if exponentiation(base_number, exponent) == expected:
        return True
    else:
        return False

def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    elif exponent == 1:
        return base_number
    else: 
        return base_number * exponentiation(base_number, exponent - 1)

print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
ThIheb commented 7 months ago
def test_exponentiation(base_number, exponent, expected):
    result = exponentiation(base_number, exponent)
    if expected == result:
        return True
    else:
        return expected, result

def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        result = base_number * exponentiation(base_number, exponent-1)
        return result
print(test_exponentiation(3,4,81))
print(test_exponentiation(17,1,17))
print(test_exponentiation(2,0,1))
katyakrsn commented 7 months ago
def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        return base_number * exponentiation(base_number, exponent - 1)

test_1 = exponentiation(3, 4)
print(test_1)

test_2 = exponentiation(17, 1)
print(test_2)

test_3 = exponentiation(2, 0)
print(test_3)
krzywonos commented 7 months ago
def test_exponentiation(base_number, exponent, expected):
    result = exponentiation(base_number, exponent)
    if expected == result:
        return True
    else:
        return expected, result

def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        return base_number * exponentiation(base_number, exponent - 1)

print(test_exponentiation(3,4,81))
print(test_exponentiation(17,1,17))
print(test_exponentiation(2,0,1))
qwindici commented 7 months ago
def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        return base_number * exponentiation(base_number, exponent - 1)

def test_exponentiation(base_number, exponent, expected):
    if exponentiation(base_number, exponent) == expected:
        return True
    else:
        return False

print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
Sergpoipoip commented 7 months ago
def test_exponentiation(base_number, exponent, expected):
    return exponentiation(base_number, exponent) == expected

def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    return exponentiation(base_number, exponent-1) * base_number

print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
CarlaMenegat commented 7 months ago

Captura de Tela 2023-11-21 às 11 22 53

alicepiazzi commented 7 months ago
def test_exponentiation(base_number, exponent, expected):
    if exponentiation(base_number, exponent) == expected:
        return True
    else:
        return False

def exponentiation(base_number, exponent):    #3=base number, 4=exponent
    if exponent == 0:   
        return 1 
    else:
        return base_number * exponentiation(base_number, exponent - 1)

print(exponentiation(3, 4, 81))
print(exponentiation(17, 1, 17))
print(exponentiation(2, 0, 1))
MariaFrancesca6 commented 7 months ago
def test_esp(base_number, exponent , expected):
    result = esp(base_number, exponent)
    if result == expected:
        return True
    else:
        return False

def esp(base_number, exponent):
    if exponent == 0:
        return 1
    elif exponent == 1:
        return base_number
    else:
        return base_number * esp(base_number, exponent - 1)

print(test_esp(3,4,81))
print(test_esp(17,1,17))
print(test_esp(2,0,1))
matildepassafaro commented 7 months ago
# define the function
def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        return base_number * exponentiation(base_number, exponent - 1)

# test case for the function
def test_exponentiation(base_number, exponent, expected):
    result = exponentiation(base_number, exponent)
    if expected == result:
        return True
    else:
        return False

# test runs: use as input 3 exponent 4, 17 exponent 1 and 2 exponent 0
print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
VirginiaDa00 commented 7 months ago
es 1 lez 8
rufferbaraldi commented 7 months ago
def test_exp_number(int_1, int_2, expected):
    result = exp_number(int_1, int_2)
    if result == expected:
        return True
    else:
        return False

def exp_number(int_1, int_2):
    if int_2 == 0:
        return 1
    else:
        return int_1 * exp_number(int_1, int_2 - 1)

print(test_exp_number(3,4,81))
print(test_exp_number(17,1,17))
print(test_exp_number(2,0,1))
essepuntato commented 7 months ago

Thank you for all your takes. Just a few comments:

simocasaz commented 7 months ago
def test_exponentiation(base_number, exponent, expected):
    result = exponentiation(base_number, exponent)
    if expected == result:
        return True
    else:
        return False

def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        exponent -= 1
        return base_number * exponentiation(base_number, exponent)

print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
vattelalberto commented 6 months ago
def test_exponentiation(base_number, exponent, expected):
    result = exponentiation(base_number, exponent)
    if result == expected:
        return True
    else:
        return False

def exponentiation(base_number, exponent):
    if exponent == 0:
        return 1
    else:
        return base_number * exponentiation(base_number, exponent - 1)

print(test_exponentiation(3, 4, 81))
print(test_exponentiation(17, 1, 17))
print(test_exponentiation(2, 0, 1))
saramadonia commented 6 months ago

recursionex1

saramadonia commented 6 months ago

recursionex1