diff --git a/contents/bitlogic/res/nand.jpg b/contents/bitlogic/res/nand.jpg index cce882a96..a5ccfb591 100644 Binary files a/contents/bitlogic/res/nand.jpg and b/contents/bitlogic/res/nand.jpg differ diff --git a/contents/bitlogic/res/nor.jpg b/contents/bitlogic/res/nor.jpg index 1cce092fa..57b3d6b28 100644 Binary files a/contents/bitlogic/res/nor.jpg and b/contents/bitlogic/res/nor.jpg differ diff --git a/contents/bitlogic/res/not.jpg b/contents/bitlogic/res/not.jpg index a7602ce02..6cd5f3624 100644 Binary files a/contents/bitlogic/res/not.jpg and b/contents/bitlogic/res/not.jpg differ diff --git a/contents/bitlogic/res/or.jpg b/contents/bitlogic/res/or.jpg index 13b8189ed..e86eb5ffb 100644 Binary files a/contents/bitlogic/res/or.jpg and b/contents/bitlogic/res/or.jpg differ diff --git a/contents/bitlogic/res/xor.jpg b/contents/bitlogic/res/xor.jpg index 76813fa05..9ffacb7fd 100644 Binary files a/contents/bitlogic/res/xor.jpg and b/contents/bitlogic/res/xor.jpg differ diff --git a/contents/cooley_tukey/res/FT_example.png b/contents/cooley_tukey/res/FT_example.png index d4f0a86d1..9e9640d71 100644 Binary files a/contents/cooley_tukey/res/FT_example.png and b/contents/cooley_tukey/res/FT_example.png differ diff --git a/contents/cooley_tukey/res/butterfly_diagram.png b/contents/cooley_tukey/res/butterfly_diagram.png index cf995b162..dd34a1fde 100644 Binary files a/contents/cooley_tukey/res/butterfly_diagram.png and b/contents/cooley_tukey/res/butterfly_diagram.png differ diff --git a/contents/cooley_tukey/res/fft.png b/contents/cooley_tukey/res/fft.png index d0ae3d9f5..b0457e320 100644 Binary files a/contents/cooley_tukey/res/fft.png and b/contents/cooley_tukey/res/fft.png differ diff --git a/contents/cooley_tukey/res/radix-2screen.jpg b/contents/cooley_tukey/res/radix-2screen.jpg index 5e48db254..5a43b46db 100644 Binary files a/contents/cooley_tukey/res/radix-2screen.jpg and b/contents/cooley_tukey/res/radix-2screen.jpg differ diff --git a/contents/cooley_tukey/res/radix-2screen_positive.jpg b/contents/cooley_tukey/res/radix-2screen_positive.jpg index f0d033880..9e6aa35df 100644 Binary files a/contents/cooley_tukey/res/radix-2screen_positive.jpg and b/contents/cooley_tukey/res/radix-2screen_positive.jpg differ diff --git a/contents/cooley_tukey/res/radix-8screen.jpg b/contents/cooley_tukey/res/radix-8screen.jpg index 1d5cf65a2..51311d9e4 100644 Binary files a/contents/cooley_tukey/res/radix-8screen.jpg and b/contents/cooley_tukey/res/radix-8screen.jpg differ diff --git a/contents/cooley_tukey/res/sinusoid.png b/contents/cooley_tukey/res/sinusoid.png index 1c340d5ae..27fe786d6 100644 Binary files a/contents/cooley_tukey/res/sinusoid.png and b/contents/cooley_tukey/res/sinusoid.png differ diff --git a/contents/euclidean_algorithm/res/modulus.png b/contents/euclidean_algorithm/res/modulus.png index c44555d2c..eb35c98d6 100644 Binary files a/contents/euclidean_algorithm/res/modulus.png and b/contents/euclidean_algorithm/res/modulus.png differ diff --git a/contents/euclidean_algorithm/res/subtraction.png b/contents/euclidean_algorithm/res/subtraction.png index 70ea252f7..e3169dd0e 100644 Binary files a/contents/euclidean_algorithm/res/subtraction.png and b/contents/euclidean_algorithm/res/subtraction.png differ diff --git a/contents/forward_euler_method/res/error.png b/contents/forward_euler_method/res/error.png index 4d5e4feb9..d300420da 100644 Binary files a/contents/forward_euler_method/res/error.png and b/contents/forward_euler_method/res/error.png differ diff --git a/contents/forward_euler_method/res/instability.png b/contents/forward_euler_method/res/instability.png index e1c2b8c47..7d733a388 100644 Binary files a/contents/forward_euler_method/res/instability.png and b/contents/forward_euler_method/res/instability.png differ diff --git a/contents/git_and_version_control/res/clone.png b/contents/git_and_version_control/res/clone.png index c155860d3..8a3f04113 100644 Binary files a/contents/git_and_version_control/res/clone.png and b/contents/git_and_version_control/res/clone.png differ diff --git a/contents/git_and_version_control/res/fork.png b/contents/git_and_version_control/res/fork.png index 657ae4208..f8a1f9b80 100644 Binary files a/contents/git_and_version_control/res/fork.png and b/contents/git_and_version_control/res/fork.png differ diff --git a/contents/huffman_encoding/res/huffman_tree.png b/contents/huffman_encoding/res/huffman_tree.png index e0795cdd9..bd4882147 100644 Binary files a/contents/huffman_encoding/res/huffman_tree.png and b/contents/huffman_encoding/res/huffman_tree.png differ diff --git a/contents/monte_carlo_integration/code/python/monte_carlo.py b/contents/monte_carlo_integration/code/python/monte_carlo.py new file mode 100644 index 000000000..041839dc2 --- /dev/null +++ b/contents/monte_carlo_integration/code/python/monte_carlo.py @@ -0,0 +1,35 @@ +import math +import random + + +def in_circle(x, y, radius = 1): + """Return True if the point is in the circle and False otherwise.""" + return (x*x + y*y) < radius*radius + +def monte_carlo(n_samples, radius = 1): + """Return the estimate of pi using the monte carlo algorithm.""" + in_circle_count = 0 + for i in range(n_samples): + + # Sample x, y from the uniform distribution + x = random.uniform(0, radius) + y = random.uniform(0, radius) + + # Count the number of points inside the circle + if(in_circle(x, y, radius)): + in_circle_count += 1 + + # Since we've generated points in upper left quadrant ([0,radius], [0, radius]) + # We need to multiply the number of points by 4 + pi_estimate = 4 * in_circle_count / (n_samples) + + return pi_estimate + +if __name__ == '__main__': + + pi_estimate = monte_carlo(100000) + percent_error = 100*abs(math.pi - pi_estimate)/math.pi + + print("The estimate of pi is: {:.3f}".format(pi_estimate)) + print("The percent error is: {:.3f}".format(percent_error)) + diff --git a/contents/monte_carlo_integration/monte_carlo_integration.md b/contents/monte_carlo_integration/monte_carlo_integration.md index 84a158e92..68fa04d22 100644 --- a/contents/monte_carlo_integration/monte_carlo_integration.md +++ b/contents/monte_carlo_integration/monte_carlo_integration.md @@ -59,6 +59,8 @@ each point is tested to see whether it's in the circle or not: [import:13-15, lang:"java"](code/java/MonteCarlo.java) {% sample lang="swift" %} [import:15-17 lang:"swift"](code/swift/monte_carlo.swift) +{% sample lang="py" %} +[import:5-7 lang:"python"](code/python/monte_carlo.py) {% endmethod %} If it's in the circle, we increase an internal count by one, and in the end, @@ -112,6 +114,8 @@ Feel free to submit your version via pull request, and thanks for reading! [import, lang:"java"](code/java/MonteCarlo.java) {% sample lang="swift" %} [import, lang:"swift"](code/swift/monte_carlo.swift) +{% sample lang="py" %} +[import, lang:"python"](code/python/monte_carlo.py) {% endmethod %} diff --git a/contents/monte_carlo_integration/res/13311.png b/contents/monte_carlo_integration/res/13311.png index 41d4b46ad..adb19185c 100644 Binary files a/contents/monte_carlo_integration/res/13311.png and b/contents/monte_carlo_integration/res/13311.png differ diff --git a/contents/monte_carlo_integration/res/195583.png b/contents/monte_carlo_integration/res/195583.png index 44b553792..3aab35ab5 100644 Binary files a/contents/monte_carlo_integration/res/195583.png and b/contents/monte_carlo_integration/res/195583.png differ diff --git a/contents/monte_carlo_integration/res/31.png b/contents/monte_carlo_integration/res/31.png index 5b9c2566d..d593f1628 100644 Binary files a/contents/monte_carlo_integration/res/31.png and b/contents/monte_carlo_integration/res/31.png differ diff --git a/contents/monte_carlo_integration/res/monte_carlo.gif b/contents/monte_carlo_integration/res/monte_carlo.gif index 2ff21b008..f4c041c87 100644 Binary files a/contents/monte_carlo_integration/res/monte_carlo.gif and b/contents/monte_carlo_integration/res/monte_carlo.gif differ diff --git a/contents/monte_carlo_integration/res/square_circle.png b/contents/monte_carlo_integration/res/square_circle.png index b33428ecb..95aea8560 100644 Binary files a/contents/monte_carlo_integration/res/square_circle.png and b/contents/monte_carlo_integration/res/square_circle.png differ diff --git a/contents/notation/res/cplot.png b/contents/notation/res/cplot.png index 9a779ac83..9693b2ccd 100644 Binary files a/contents/notation/res/cplot.png and b/contents/notation/res/cplot.png differ diff --git a/contents/taylor_series_expansion/res/function_sum.png b/contents/taylor_series_expansion/res/function_sum.png index 5f7c16a3f..ecbea2d08 100644 Binary files a/contents/taylor_series_expansion/res/function_sum.png and b/contents/taylor_series_expansion/res/function_sum.png differ diff --git a/contents/tree_traversal/code/scratch/scratch_tree.png b/contents/tree_traversal/code/scratch/scratch_tree.png index a0288cfdd..54fc441bd 100644 Binary files a/contents/tree_traversal/code/scratch/scratch_tree.png and b/contents/tree_traversal/code/scratch/scratch_tree.png differ diff --git a/contents/tree_traversal/res/3-tree.png b/contents/tree_traversal/res/3-tree.png index 7f6ce3e5c..e5ed04299 100644 Binary files a/contents/tree_traversal/res/3-tree.png and b/contents/tree_traversal/res/3-tree.png differ diff --git a/contents/tree_traversal/res/BFS_simple.png b/contents/tree_traversal/res/BFS_simple.png index 50b16f461..44997a292 100644 Binary files a/contents/tree_traversal/res/BFS_simple.png and b/contents/tree_traversal/res/BFS_simple.png differ diff --git a/contents/tree_traversal/res/DFS_in.png b/contents/tree_traversal/res/DFS_in.png index a3ebbf898..669c3cdec 100644 Binary files a/contents/tree_traversal/res/DFS_in.png and b/contents/tree_traversal/res/DFS_in.png differ diff --git a/contents/tree_traversal/res/DFS_post.png b/contents/tree_traversal/res/DFS_post.png index 7232d5f42..786431c2a 100644 Binary files a/contents/tree_traversal/res/DFS_post.png and b/contents/tree_traversal/res/DFS_post.png differ diff --git a/contents/tree_traversal/res/DFS_pre.png b/contents/tree_traversal/res/DFS_pre.png index a72fee21f..6fa595e6c 100644 Binary files a/contents/tree_traversal/res/DFS_pre.png and b/contents/tree_traversal/res/DFS_pre.png differ diff --git a/contents/tree_traversal/res/binary_tree.png b/contents/tree_traversal/res/binary_tree.png index b7e612076..3376123e0 100644 Binary files a/contents/tree_traversal/res/binary_tree.png and b/contents/tree_traversal/res/binary_tree.png differ diff --git a/contents/verlet_integration/code/labview/verlet_labview.png b/contents/verlet_integration/code/labview/verlet_labview.png index 8005a6776..16c24913c 100644 Binary files a/contents/verlet_integration/code/labview/verlet_labview.png and b/contents/verlet_integration/code/labview/verlet_labview.png differ diff --git a/contents/verlet_integration/code/scratch/verlet_scratch.png b/contents/verlet_integration/code/scratch/verlet_scratch.png index fd54372c4..2d967081f 100644 Binary files a/contents/verlet_integration/code/scratch/verlet_scratch.png and b/contents/verlet_integration/code/scratch/verlet_scratch.png differ