# Project Euler
Problems are taken from https://projecteuler.net/, the Project Euler. [Problems are licensed under CC BY-NC-SA 4.0](https://projecteuler.net/copyright).
Project Euler is a series of challenging mathematical/computer programming problems that require more than just mathematical
insights to solve. Project Euler is ideal for mathematicians who are learning to code.
The solutions will be checked by our [automated testing on GitHub Actions](https://github.com/TheAlgorithms/Python/actions) with the help of [this script](https://github.com/TheAlgorithms/Python/blob/master/scripts/validate_solutions.py). The efficiency of your code is also checked. You can view the top 10 slowest solutions on GitHub Actions logs (under `slowest 10 durations`) and open a pull request to improve those solutions.
## Solution Guidelines
Welcome to [TheAlgorithms/Python](https://github.com/TheAlgorithms/Python)! Before reading the solution guidelines, make sure you read the whole [Contributing Guidelines](https://github.com/TheAlgorithms/Python/blob/master/CONTRIBUTING.md) as it won't be repeated in here. If you have any doubt on the guidelines, please feel free to [state it clearly in an issue](https://github.com/TheAlgorithms/Python/issues/new) or ask the community in [Gitter](https://gitter.im/TheAlgorithms/community). You can use the [template](https://github.com/TheAlgorithms/Python/blob/master/project_euler/README.md#solution-template) we have provided below as your starting point but be sure to read the [Coding Style](https://github.com/TheAlgorithms/Python/blob/master/project_euler/README.md#coding-style) part first.
### Coding Style
* Please maintain consistency in project directory and solution file names. Keep the following points in mind:
* Create a new directory only for the problems which do not exist yet.
* If you create a new directory, please create an empty `__init__.py` file inside it as well.
* Please name the project **directory** as `problem_<problem_number>` where `problem_number` should be filled with 0s so as to occupy 3 digits. Example: `problem_001`, `problem_002`, `problem_067`, `problem_145`, and so on.
* Please provide a link to the problem and other references, if used, in the **module-level docstring**.
* All imports should come ***after*** the module-level docstring.
* You can have as many helper functions as you want but there should be one main function called `solution` which should satisfy the conditions as stated below:
* It should contain positional argument(s) whose default value is the question input. Example: Please take a look at [Problem 1](https://projecteuler.net/problem=1) where the question is to *Find the sum of all the multiples of 3 or 5 below 1000.* In this case the main solution function will be `solution(limit: int = 1000)`.
* When the `solution` function is called without any arguments like so: `solution()`, it should return the answer to the problem.
* Every function, which includes all the helper functions, if any, and the main solution function, should have `doctest` in the function docstring along with a brief statement mentioning what the function is about.
* There should not be a `doctest` for testing the answer as that is done by our GitHub Actions build using this [script](https://github.com/TheAlgorithms/Python/blob/master/scripts/validate_solutions.py). Keeping in mind the above example of [Problem 1](https://projecteuler.net/problem=1):
```python
def solution(limit: int = 1000):
"""
A brief statement mentioning what the function is about.
You can have a detailed explanation about the solution method in the
module-level docstring.
>>> solution(1)
...
>>> solution(16)
...
>>> solution(100)
...
"""
```
### Solution Template
You can use the below template as your starting point but please read the [Coding Style](https://github.com/TheAlgorithms/Python/blob/master/project_euler/README.md#coding-style) first to understand how the template works.
Please change the name of the helper functions accordingly, change the parameter names with a descriptive one, replace the content within `[square brackets]` (including the brackets) with the appropriate content.
```python
"""
Project Euler Problem [problem number]: [link to the original problem]
... [Entire problem statement] ...
... [Solution explanation - Optional] ...
References [Optional]:
- [Wikipedia link to the topic]
- [Stackoverflow link]
...
"""
import module1
import module2
...
def helper1(arg1: [type hint], arg2: [type hint], ...) -> [Return type hint]:
"""
A brief statement explaining what the function is about.
... A more elaborate description ... [Optional]
...
[Doctest]
...
"""
...
# calculations
...
return
# You can have multiple helper functions but the solution function should be
# after all the helper functions ...
def solution(arg1: [type hint], arg2: [type hint], ...) -> [Return type hint]:
"""
A brief statement mentioning what the function is about.
You can have a detailed explanation about the solution in the
module-level docstring.
...
[Doctest as mentioned above]
...
"""
...
# calculations
...
return answer
if __name__ == "__main__":
print(f"{solution() = }")
```
没有合适的资源?快使用搜索试试~ 我知道了~
Python 语言实现各种算法的集合
共1343个文件
py:1230个
txt:49个
md:27个
需积分: 1 1 下载量 44 浏览量
2023-10-10
11:27:17
上传
评论
收藏 8.09MB ZIP 举报
温馨提示
用 Python 实现所有算法,是用 Python 语言实现各种算法的集合,主要用于教育和学习。包括搜索、排序、数据结构、机器学习、密码、神经网络等方面
资源推荐
资源详情
资源评论
收起资源包目录
Python 语言实现各种算法的集合 (1343个子文件)
CODEOWNERS 1KB
sample_data.csv 70KB
ex_data.csv 1KB
Dockerfile 406B
.gitattributes 12B
.gitignore 1KB
pytest.ini 60B
example_wikipedia_image.jpg 476KB
output.jpg 116KB
PSNR-example-comp-10.jpg 104KB
lena.jpg 102KB
input.jpg 59KB
2D_problems.jpg 57KB
2D_problems_1.jpg 40KB
example_image.jpg 29KB
lena_small.jpg 7KB
project_euler_answers.json 63KB
devcontainer.json 1KB
loudness_curve.json 812B
settings.json 87B
DIRECTORY.md 59KB
CONTRIBUTING.md 11KB
binary_tree_traversals.md 5KB
README.md 5KB
README.md 4KB
local_weighted_learning.md 3KB
README.md 3KB
README.md 3KB
README.md 3KB
normal_distribution_quick_sort.md 2KB
README.md 1KB
pull_request_template.md 1KB
README.md 1KB
LICENSE.md 1KB
README.md 867B
README.md 746B
README.md 726B
README.md 722B
ABOUT.md 452B
README.md 441B
README.md 415B
README.md 374B
README.md 303B
README.md 295B
README.md 287B
README.md 264B
README.md 58B
PSNR-example-base.png 4.31MB
original_image.png 82KB
gaussian.png 52KB
compressed_image.png 26KB
red_black_tree.py 25KB
graph_adjacency_matrix.py 22KB
graph_adjacency_list.py 21KB
wa_tor.py 20KB
sequential_minimum_optimization.py 20KB
area.py 19KB
index_calculation.py 19KB
linear_discriminant_analysis.py 17KB
volume.py 16KB
binary_search_tree_recursive.py 16KB
convex_hull.py 16KB
singly_linked_list.py 16KB
directed_and_undirected_(weighted)_graph.py 15KB
haralick_descriptors.py 15KB
word_search.py 15KB
mfcc.py 14KB
convolution_neural_network.py 14KB
lib.py 14KB
viterbi.py 14KB
double_ended_queue.py 14KB
sol1.py 14KB
primelib.py 13KB
k_means_clust.py 12KB
binomial_heap.py 12KB
resistor_color_code.py 12KB
skip_list.py 12KB
multi_level_feedback_queue.py 12KB
diffie_hellman.py 12KB
n_body_simulation.py 12KB
2_hidden_layers_neural_network.py 11KB
temperature_conversions.py 11KB
davisb_putnamb_logemannb_loveland.py 11KB
simplex.py 11KB
md5.py 11KB
matrix_class.py 11KB
tabu_search.py 11KB
weight_conversion.py 10KB
lru_cache.py 10KB
lfu_cache.py 10KB
avl_tree.py 9KB
hamming_code.py 9KB
decrypt_caesar_with_chi_squared.py 9KB
binary_search.py 9KB
minimum_spanning_tree_prims2.py 9KB
binary_tree_traversal.py 9KB
enigma_machine2.py 9KB
multi_heuristic_astar.py 8KB
dijkstra_bankers_algorithm.py 8KB
basic_graphs.py 8KB
共 1343 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
汀、人工智能
- 粉丝: 7w+
- 资源: 376
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功