Chapter 8 correction for problemm 3
This commit is contained in:
parent
6f779a75f7
commit
aab7ee011b
3 changed files with 47 additions and 52 deletions
|
|
@ -25,10 +25,6 @@ So that's when `bound` was created. Problem was, I initialized it to the value o
|
|||
That was a pretty fun problem! Alright, now to the solution:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 2
|
||||
|
||||
def print_triangular_numbers(n):
|
||||
# your code here
|
||||
i = 1
|
||||
|
|
@ -65,10 +61,6 @@ Now the real struggle was working with primes larger than 2. Turns out that solu
|
|||
But then we get back to the whole “taking too many steps thing”. I did more research and learned that taking the square root of `n` and making that the limit for the while loop would help the program execute a lot faster than testing if x was greater than. Then I reinitialized x to 3, incremented it by 2 instead of decrementing it by 2 and wallah! I had a program that was decently efficient and effective and it passed all the built in tests!
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 3
|
||||
|
||||
import math
|
||||
|
||||
def is_prime(n):
|
||||
|
|
@ -93,6 +85,50 @@ print(is_prime(4813))
|
|||
|
||||

|
||||
|
||||
### Correction (Oct 15, 2023):
|
||||
|
||||
While learning about loops and arrays in JavaScript, I had a similar problem where I had to print all the prime numbers for a given number. I came back to this one as a reference and realized that there was actually an issue with the way I looked for prime numbers. For some reason, the number 25 returned `True`, when it should have returned `False`.
|
||||
|
||||
This is how I solved the problem in JavaScript:
|
||||
|
||||
```application-javascript-env-frontend
|
||||
let n = prompt("Enter a positive integer.");
|
||||
|
||||
outer:
|
||||
for (let i = 2; i <= n; i++){
|
||||
|
||||
for (let j = 2; j < i; j++){
|
||||
if (i % j == 0) continue outer;
|
||||
}
|
||||
|
||||
console.log(i);
|
||||
}
|
||||
```
|
||||
|
||||
Result with an input of 25:
|
||||
|
||||

|
||||
|
||||
With the above script as a reference, this is how I revised my solution for problem 3:
|
||||
|
||||
```text-x-python
|
||||
def is_prime(n):
|
||||
# your code
|
||||
|
||||
for i in range (2, n):
|
||||
if n % i == 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
print(is_prime(25))
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||

|
||||
|
||||
Once again, the built in tests are not the end all be all for these problems (see chapter 9's exercises for more context). I passed the tests with the last iteration of my problem, but there was still that _one_ number (25 and maybe more), that got missed by the tests.
|
||||
|
||||
Turtle Problems
|
||||
---------------
|
||||
|
||||
|
|
@ -113,10 +149,6 @@ I'm combining problems 4 through 6 because they build on each other.
|
|||
### Initial code from an earlier lesson section:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Section 4
|
||||
|
||||
import random
|
||||
import turtle
|
||||
|
||||
|
|
@ -155,13 +187,9 @@ wn.exitonclick()
|
|||
|
||||
### My Code
|
||||
|
||||
Oh boy.. this section was a lot. Problem 4 was pretty easy, though. All I had to do was have them go at a random angle. That initial code looked like this:
|
||||
Oh boy.. this one was a lot. Problem 4 was pretty easy. All I had to do was have them go at a random angle. That initial code looked like this:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 4
|
||||
|
||||
import random
|
||||
import turtle
|
||||
|
||||
|
|
@ -201,10 +229,6 @@ wn.exitonclick()
|
|||
The random starting position proved to be more challenging. The calculations were all fine from the getgo. The issue was I forgot bring the pen up before I moved the turtles to a random location. I ended up moving on to the image problems before coming back to this and realizing that lol. Here's the code for that:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 5
|
||||
|
||||
import random
|
||||
import turtle
|
||||
|
||||
|
|
@ -293,10 +317,6 @@ I also changed the angle from `180` to `170` and that seemed to keep the turtles
|
|||
Here's the final code:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 6
|
||||
|
||||
import random
|
||||
import turtle
|
||||
import math
|
||||
|
|
@ -388,8 +408,7 @@ wn.exitonclick()
|
|||
|
||||
Result:
|
||||
|
||||
I started recording after the turtles already got moving, but you get the idea.
|
||||
|
||||
I started after the turtles already got moving, but you get the idea.
|
||||

|
||||
|
||||
Image problems
|
||||
|
|
@ -400,10 +419,6 @@ The following problems used the following image and code (from an earlier lesson
|
|||

|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Section 11
|
||||
|
||||
import image
|
||||
|
||||
img = image.Image("luther.jpg")
|
||||
|
|
@ -434,10 +449,6 @@ win.exitonclick()
|
|||
This was my initial solution.
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 8
|
||||
|
||||
import image
|
||||
|
||||
img = image.Image("luther.jpg")
|
||||
|
|
@ -465,15 +476,11 @@ And the result:
|
|||
|
||||

|
||||
|
||||
But then I had to figure out turning that into a function. I was going to go the lazy route and leave it as it was since it gave me the solution I was looking for, but then I figured actually turning this into a function would help me with the next problem.
|
||||
But then I had to figure out turning That into a function. I was going to go the lazy route and leave it as it was since it gave me the solution I was looking for, but then I figured actually turning this into a function would help me with the next problem.
|
||||
|
||||
Here was my final solution with the function:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 8
|
||||
|
||||
import image
|
||||
|
||||
def greyScale (red, blue, green):
|
||||
|
|
@ -511,10 +518,6 @@ And the result, of course, is the same:
|
|||
This was my initial solution:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 9
|
||||
|
||||
import image
|
||||
|
||||
img = image.Image("luther.jpg")
|
||||
|
|
@ -551,10 +554,6 @@ The result was:
|
|||
Close, but not quite. I needed black and white, not high contrast. But my intuition was in the ballpark. I figured that this would work better if I actually took the solution I got from the grey scale problem and then turned _that_ black and white. So, I went back to Problem 8, turned my solution into a function and then fixed up the code for this problem like this:
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 9
|
||||
|
||||
import image
|
||||
|
||||
def greyScale (red, blue, green):
|
||||
|
|
@ -604,10 +603,6 @@ win.exitonclick()
|
|||
This didn't take too much effort since they gave me the formula. Just sharing, because I think it's cool.
|
||||
|
||||
```text-x-python
|
||||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 8
|
||||
# Problem 10
|
||||
|
||||
import image
|
||||
|
||||
|
||||
|
|
|
|||
BIN
thinkcspy/Chapter-8-Exercises/Exercises/7_image.png
Normal file
BIN
thinkcspy/Chapter-8-Exercises/Exercises/7_image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
thinkcspy/Chapter-8-Exercises/Exercises/8_image.png
Normal file
BIN
thinkcspy/Chapter-8-Exercises/Exercises/8_image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
Loading…
Reference in a new issue