Fall 2024 - P2
Big Idea 3 | .1 | .2 | .3 | .4 | .5 | .6 | .7 | .8 | .10 |
3.3.1 Mathematical Expressions (P2)
Student led teaching on Mathematical Expressions. Learn how mathematical expressions involve using arithmetic operators (like addition, subtraction, multiplication, and division) to perform calculations
Mathematical Expressions:
- Algorithm: A well-defined set of finite instructions designed to accomplish a specific task.
- Example: Baking cookies involves following a structured series of steps in a precise order.
- Another example: In the morning, tasks such as putting on clothes and eating breakfast are executed in a particular sequence.
- In essence, an algorithm represents an ordered process that systematically leads to a desired outcome.
-
Sequencing: Ensuring tasks are executed in a strict, predefined order.
-
Selection: After completing an initial step, a decision is made (yes/no or true/false), which dictates the next action—if a condition holds true, one path is followed, otherwise, an alternative action is taken.
- Iteration: Repeatedly performing a sequence of steps based on a condition.
- Example: Complete the first step, proceed to the next, evaluate a condition, and if necessary, continue repeating the steps.
- Methods for representing algorithms:
- Flowchart: Uses arrows and shapes to visually represent decisions and the flow of steps.
- Pseudocode: A simplified, high-level representation of an algorithm, often written in plain language or comments to describe each section’s functionality without using formal code syntax. </span>
import functools
import logging
# Setting up the logging configuration
logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s')
def memoize_factorial(func):
"""Decorator to cache results of factorial computations."""
cache = {}
@functools.wraps(func)
def wrapper(n):
if n not in cache:
logging.info(f"Calculating factorial for {n}")
cache[n] = func(n)
else:
logging.info(f"Using cached result for {n}")
return cache[n]
return wrapper
@memoize_factorial
def factorial(n):
"""Recursive factorial with memoization."""
# Selection: Handle edge cases first
if n < 0:
logging.error(f"Factorial is not defined for negative numbers: {n}")
return "Factorial is not defined for negative numbers"
elif n == 0 or n == 1:
# Base case
return 1
else:
# Recursion with memoization
return n * factorial(n - 1)
def parse_input(user_input):
"""Parses a comma-separated string of numbers, raises ValueError if input is invalid."""
try:
return [int(num.strip()) for num in user_input.split(',')]
except ValueError:
logging.error("Input contains invalid values. Please enter a valid list of non-negative integers.")
raise
def main():
try:
# Get user input and parse it
user_input = input("Enter a list of non-negative integers (comma-separated): ")
numbers = parse_input(user_input)
# Calculate and print the factorial for each valid number
for number in numbers:
result = factorial(number)
if isinstance(result, int):
logging.info(f"The factorial of {number} is: {result}")
else:
logging.error(f"Factorial for {number} is undefined due to invalid input.")
except ValueError:
logging.error("Invalid input. Program terminating.")
if __name__ == "__main__":
main()
INFO: Calculating factorial for 4
INFO: Calculating factorial for 3
INFO: Calculating factorial for 2
INFO: Calculating factorial for 1
INFO: The factorial of 4 is: 24
INFO: Calculating factorial for 353
INFO: Calculating factorial for 352
INFO: Calculating factorial for 351
INFO: Calculating factorial for 350
INFO: Calculating factorial for 349
INFO: Calculating factorial for 348
INFO: Calculating factorial for 347
INFO: Calculating factorial for 346
INFO: Calculating factorial for 345
INFO: Calculating factorial for 344
INFO: Calculating factorial for 343
INFO: Calculating factorial for 342
INFO: Calculating factorial for 341
INFO: Calculating factorial for 340
INFO: Calculating factorial for 339
INFO: Calculating factorial for 338
INFO: Calculating factorial for 337
INFO: Calculating factorial for 336
INFO: Calculating factorial for 335
INFO: Calculating factorial for 334
INFO: Calculating factorial for 333
INFO: Calculating factorial for 332
INFO: Calculating factorial for 331
INFO: Calculating factorial for 330
INFO: Calculating factorial for 329
INFO: Calculating factorial for 328
INFO: Calculating factorial for 327
INFO: Calculating factorial for 326
INFO: Calculating factorial for 325
INFO: Calculating factorial for 324
INFO: Calculating factorial for 323
INFO: Calculating factorial for 322
INFO: Calculating factorial for 321
INFO: Calculating factorial for 320
INFO: Calculating factorial for 319
INFO: Calculating factorial for 318
INFO: Calculating factorial for 317
INFO: Calculating factorial for 316
INFO: Calculating factorial for 315
INFO: Calculating factorial for 314
INFO: Calculating factorial for 313
INFO: Calculating factorial for 312
INFO: Calculating factorial for 311
INFO: Calculating factorial for 310
INFO: Calculating factorial for 309
INFO: Calculating factorial for 308
INFO: Calculating factorial for 307
INFO: Calculating factorial for 306
INFO: Calculating factorial for 305
INFO: Calculating factorial for 304
INFO: Calculating factorial for 303
INFO: Calculating factorial for 302
INFO: Calculating factorial for 301
INFO: Calculating factorial for 300
INFO: Calculating factorial for 299
INFO: Calculating factorial for 298
INFO: Calculating factorial for 297
INFO: Calculating factorial for 296
INFO: Calculating factorial for 295
INFO: Calculating factorial for 294
INFO: Calculating factorial for 293
INFO: Calculating factorial for 292
INFO: Calculating factorial for 291
INFO: Calculating factorial for 290
INFO: Calculating factorial for 289
INFO: Calculating factorial for 288
INFO: Calculating factorial for 287
INFO: Calculating factorial for 286
INFO: Calculating factorial for 285
INFO: Calculating factorial for 284
INFO: Calculating factorial for 283
INFO: Calculating factorial for 282
INFO: Calculating factorial for 281
INFO: Calculating factorial for 280
INFO: Calculating factorial for 279
INFO: Calculating factorial for 278
INFO: Calculating factorial for 277
INFO: Calculating factorial for 276
INFO: Calculating factorial for 275
INFO: Calculating factorial for 274
INFO: Calculating factorial for 273
INFO: Calculating factorial for 272
INFO: Calculating factorial for 271
INFO: Calculating factorial for 270
INFO: Calculating factorial for 269
INFO: Calculating factorial for 268
INFO: Calculating factorial for 267
INFO: Calculating factorial for 266
INFO: Calculating factorial for 265
INFO: Calculating factorial for 264
INFO: Calculating factorial for 263
INFO: Calculating factorial for 262
INFO: Calculating factorial for 261
INFO: Calculating factorial for 260
INFO: Calculating factorial for 259
INFO: Calculating factorial for 258
INFO: Calculating factorial for 257
INFO: Calculating factorial for 256
INFO: Calculating factorial for 255
INFO: Calculating factorial for 254
INFO: Calculating factorial for 253
INFO: Calculating factorial for 252
INFO: Calculating factorial for 251
INFO: Calculating factorial for 250
INFO: Calculating factorial for 249
INFO: Calculating factorial for 248
INFO: Calculating factorial for 247
INFO: Calculating factorial for 246
INFO: Calculating factorial for 245
INFO: Calculating factorial for 244
INFO: Calculating factorial for 243
INFO: Calculating factorial for 242
INFO: Calculating factorial for 241
INFO: Calculating factorial for 240
INFO: Calculating factorial for 239
INFO: Calculating factorial for 238
INFO: Calculating factorial for 237
INFO: Calculating factorial for 236
INFO: Calculating factorial for 235
INFO: Calculating factorial for 234
INFO: Calculating factorial for 233
INFO: Calculating factorial for 232
INFO: Calculating factorial for 231
INFO: Calculating factorial for 230
INFO: Calculating factorial for 229
INFO: Calculating factorial for 228
INFO: Calculating factorial for 227
INFO: Calculating factorial for 226
INFO: Calculating factorial for 225
INFO: Calculating factorial for 224
INFO: Calculating factorial for 223
INFO: Calculating factorial for 222
INFO: Calculating factorial for 221
INFO: Calculating factorial for 220
INFO: Calculating factorial for 219
INFO: Calculating factorial for 218
INFO: Calculating factorial for 217
INFO: Calculating factorial for 216
INFO: Calculating factorial for 215
INFO: Calculating factorial for 214
INFO: Calculating factorial for 213
INFO: Calculating factorial for 212
INFO: Calculating factorial for 211
INFO: Calculating factorial for 210
INFO: Calculating factorial for 209
INFO: Calculating factorial for 208
INFO: Calculating factorial for 207
INFO: Calculating factorial for 206
INFO: Calculating factorial for 205
INFO: Calculating factorial for 204
INFO: Calculating factorial for 203
INFO: Calculating factorial for 202
INFO: Calculating factorial for 201
INFO: Calculating factorial for 200
INFO: Calculating factorial for 199
INFO: Calculating factorial for 198
INFO: Calculating factorial for 197
INFO: Calculating factorial for 196
INFO: Calculating factorial for 195
INFO: Calculating factorial for 194
INFO: Calculating factorial for 193
INFO: Calculating factorial for 192
INFO: Calculating factorial for 191
INFO: Calculating factorial for 190
INFO: Calculating factorial for 189
INFO: Calculating factorial for 188
INFO: Calculating factorial for 187
INFO: Calculating factorial for 186
INFO: Calculating factorial for 185
INFO: Calculating factorial for 184
INFO: Calculating factorial for 183
INFO: Calculating factorial for 182
INFO: Calculating factorial for 181
INFO: Calculating factorial for 180
INFO: Calculating factorial for 179
INFO: Calculating factorial for 178
INFO: Calculating factorial for 177
INFO: Calculating factorial for 176
INFO: Calculating factorial for 175
INFO: Calculating factorial for 174
INFO: Calculating factorial for 173
INFO: Calculating factorial for 172
INFO: Calculating factorial for 171
INFO: Calculating factorial for 170
INFO: Calculating factorial for 169
INFO: Calculating factorial for 168
INFO: Calculating factorial for 167
INFO: Calculating factorial for 166
INFO: Calculating factorial for 165
INFO: Calculating factorial for 164
INFO: Calculating factorial for 163
INFO: Calculating factorial for 162
INFO: Calculating factorial for 161
INFO: Calculating factorial for 160
INFO: Calculating factorial for 159
INFO: Calculating factorial for 158
INFO: Calculating factorial for 157
INFO: Calculating factorial for 156
INFO: Calculating factorial for 155
INFO: Calculating factorial for 154
INFO: Calculating factorial for 153
INFO: Calculating factorial for 152
INFO: Calculating factorial for 151
INFO: Calculating factorial for 150
INFO: Calculating factorial for 149
INFO: Calculating factorial for 148
INFO: Calculating factorial for 147
INFO: Calculating factorial for 146
INFO: Calculating factorial for 145
INFO: Calculating factorial for 144
INFO: Calculating factorial for 143
INFO: Calculating factorial for 142
INFO: Calculating factorial for 141
INFO: Calculating factorial for 140
INFO: Calculating factorial for 139
INFO: Calculating factorial for 138
INFO: Calculating factorial for 137
INFO: Calculating factorial for 136
INFO: Calculating factorial for 135
INFO: Calculating factorial for 134
INFO: Calculating factorial for 133
INFO: Calculating factorial for 132
INFO: Calculating factorial for 131
INFO: Calculating factorial for 130
INFO: Calculating factorial for 129
INFO: Calculating factorial for 128
INFO: Calculating factorial for 127
INFO: Calculating factorial for 126
INFO: Calculating factorial for 125
INFO: Calculating factorial for 124
INFO: Calculating factorial for 123
INFO: Calculating factorial for 122
INFO: Calculating factorial for 121
INFO: Calculating factorial for 120
INFO: Calculating factorial for 119
INFO: Calculating factorial for 118
INFO: Calculating factorial for 117
INFO: Calculating factorial for 116
INFO: Calculating factorial for 115
INFO: Calculating factorial for 114
INFO: Calculating factorial for 113
INFO: Calculating factorial for 112
INFO: Calculating factorial for 111
INFO: Calculating factorial for 110
INFO: Calculating factorial for 109
INFO: Calculating factorial for 108
INFO: Calculating factorial for 107
INFO: Calculating factorial for 106
INFO: Calculating factorial for 105
INFO: Calculating factorial for 104
INFO: Calculating factorial for 103
INFO: Calculating factorial for 102
INFO: Calculating factorial for 101
INFO: Calculating factorial for 100
INFO: Calculating factorial for 99
INFO: Calculating factorial for 98
INFO: Calculating factorial for 97
INFO: Calculating factorial for 96
INFO: Calculating factorial for 95
INFO: Calculating factorial for 94
INFO: Calculating factorial for 93
INFO: Calculating factorial for 92
INFO: Calculating factorial for 91
INFO: Calculating factorial for 90
INFO: Calculating factorial for 89
INFO: Calculating factorial for 88
INFO: Calculating factorial for 87
INFO: Calculating factorial for 86
INFO: Calculating factorial for 85
INFO: Calculating factorial for 84
INFO: Calculating factorial for 83
INFO: Calculating factorial for 82
INFO: Calculating factorial for 81
INFO: Calculating factorial for 80
INFO: Calculating factorial for 79
INFO: Calculating factorial for 78
INFO: Calculating factorial for 77
INFO: Calculating factorial for 76
INFO: Calculating factorial for 75
INFO: Calculating factorial for 74
INFO: Calculating factorial for 73
INFO: Calculating factorial for 72
INFO: Calculating factorial for 71
INFO: Calculating factorial for 70
INFO: Calculating factorial for 69
INFO: Calculating factorial for 68
INFO: Calculating factorial for 67
INFO: Calculating factorial for 66
INFO: Calculating factorial for 65
INFO: Calculating factorial for 64
INFO: Calculating factorial for 63
INFO: Calculating factorial for 62
INFO: Calculating factorial for 61
INFO: Calculating factorial for 60
INFO: Calculating factorial for 59
INFO: Calculating factorial for 58
INFO: Calculating factorial for 57
INFO: Calculating factorial for 56
INFO: Calculating factorial for 55
INFO: Calculating factorial for 54
INFO: Calculating factorial for 53
INFO: Calculating factorial for 52
INFO: Calculating factorial for 51
INFO: Calculating factorial for 50
INFO: Calculating factorial for 49
INFO: Calculating factorial for 48
INFO: Calculating factorial for 47
INFO: Calculating factorial for 46
INFO: Calculating factorial for 45
INFO: Calculating factorial for 44
INFO: Calculating factorial for 43
INFO: Calculating factorial for 42
INFO: Calculating factorial for 41
INFO: Calculating factorial for 40
INFO: Calculating factorial for 39
INFO: Calculating factorial for 38
INFO: Calculating factorial for 37
INFO: Calculating factorial for 36
INFO: Calculating factorial for 35
INFO: Calculating factorial for 34
INFO: Calculating factorial for 33
INFO: Calculating factorial for 32
INFO: Calculating factorial for 31
INFO: Calculating factorial for 30
INFO: Calculating factorial for 29
INFO: Calculating factorial for 28
INFO: Calculating factorial for 27
INFO: Calculating factorial for 26
INFO: Calculating factorial for 25
INFO: Calculating factorial for 24
INFO: Calculating factorial for 23
INFO: Calculating factorial for 22
INFO: Calculating factorial for 21
INFO: Calculating factorial for 20
INFO: Calculating factorial for 19
INFO: Calculating factorial for 18
INFO: Calculating factorial for 17
INFO: Calculating factorial for 16
INFO: Calculating factorial for 15
INFO: Calculating factorial for 14
INFO: Calculating factorial for 13
INFO: Calculating factorial for 12
INFO: Calculating factorial for 11
INFO: Calculating factorial for 10
INFO: Calculating factorial for 9
INFO: Calculating factorial for 8
INFO: Calculating factorial for 7
INFO: Calculating factorial for 6
INFO: Calculating factorial for 5
INFO: Using cached result for 4
INFO: The factorial of 353 is: 5390123321132663611839830169709390802700901540502299409155144170831724510684534699508137677248623055131598638117296703158603498400610313930673453648151014429099960251831405205008293134605366015284045125262984521994476231760549815623012836030339067978538590626728130196262515716507849981195751552694049387406898755340816952993133517014025041844809440588220298088634239045104953684521052138002161108718767713272889846311454562299898752627785623976672521828121478939955822655777460641240477320760977111903156911659536243623806004544204602635691954808430668261822466970110676842032505435259953957358927790048050472573112149563557689823435680703352963668955008021299200000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Example 1
Scenario: You’re in the middle of a geometry test and need to graph the function ( f(x) = 2(x - 3)^2 + 5 ), but you’re unsure how to start. By inputting a range of x-values, you can quickly compute the corresponding y-values, helping you plot the points and accurately sketch the graph. With this approach, you’ll confidently ace the graphing question and boost your test score!
# List of x-coordinates to be plugged into the equation to get the corresponding y-values
x_values = [2, 5, 7, 10]
# Loop to iterate through the list of x-coordinates
for x in x_values:
# Calculate the corresponding y-values using the equation f(x) = 2(x - 3)^2 + 5
y = 2 * (x - 3) ** 2 + 5
# Print the result for each x-coordinate
print(f"f({x}) = {y}")
f(2) = 7
f(5) = 13
f(7) = 37
f(10) = 103
<script src="https://utteranc.es/client.js"
repo="manas12709/portfolio_2025"
issue-term="pathname"
label="utterances"
theme="github-light"
crossorigin="anonymous"
async>
</script>