Skip to content

Commit 8bf4dce

Browse files
committed
Updated README.md and codeforces.py ICPC.py and IMO.py
1 parent 6ff162b commit 8bf4dce

File tree

8 files changed

+7351
-6584
lines changed

8 files changed

+7351
-6584
lines changed

README.md

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
This repo contains a dataset of python reasoning challenges which can be used to teach an AI python and evaluate an AI's ability to understand and write python programs.
44

5-
# [Click here to browse the challenges](/problems/README.md)
6-
75
## What is a python reasoning challenge?
86

97
Each challenge takes the form of a python function that takes an answer as an argument. The goal is to find an answer which makes the function return `True`.
@@ -25,6 +23,56 @@ def sat(moves: List[List[int]], num_disks=8): # moves is list of [from, to] pai
2523

2624
```
2725

26+
## Problem sources
27+
28+
The problems in this repo draw inspiration from:
29+
* Wikipedia articles about algorithms and puzzles
30+
* The website [codeforces.com](https://codeforces.com), a popular website for programming competition problems
31+
* The [International Collegiate Programming Contest](https://icpc.global) (ICPC)
32+
* The [International Mathematical Olympiad](https://en.wikipedia.org/wiki/International_Mathematical_Olympiad) (IMO)
33+
34+
# [Click here to browse the challenges](/problems/README.md)
35+
36+
## Summary of the dataset
37+
* Numerous trivial puzzles like `hello world` and reversing a list, useful for learning to program
38+
* Classic puzzles like:
39+
* Towers of Hanoi
40+
* Verbal Arithmetic (solve digit-substitutions like SEND + MORE = MONEY)
41+
* The Game of Life (e.g., finding oscillators of a given period, some **open**)
42+
* Chess puzzles (e.g., knight's tour and n-queen problem variants)
43+
* (to add: Sliding puzzles, Sudoku?)
44+
* Two-player games
45+
* Finding optimal strategies for Tic-Tac-Toe, Rock-Paper-Scissors, Mastermind (to add: connect four?)
46+
* Finding minimax strategies for zero-sum bimatrix games, which is equivalent to linear programming
47+
* Finding Nash equilibria of general-sum games (**open**, PPAD complete)
48+
* Math and programming competitions
49+
* International Mathematical Olympiad (IMO) problems
50+
* International Collegiate Programming Contest (ICPC) problems
51+
* Competitive programming problems from codeforces.com
52+
* Graph theory algorithmic challenges
53+
* Shortest path
54+
* Planted clique (open)
55+
* Elementary algebra
56+
* Solving equations
57+
* Solving quadratic, cubic, and quartic equations
58+
* Number theory algorithmic challenges:
59+
* Finding common divisors (e.g., using Euclid's algorithm)
60+
* Factoring numbers (easy for small factors, over $100k in prizes have been awarded and **open**
61+
for large numbers)
62+
* Discrete log (again **open** in general, easy for some)
63+
* (to add, bitcoin mining?)
64+
* Lattices
65+
* Learning parity (typically solved using Gaussian elimination)
66+
* Learning parity with noise (**open**)
67+
* (to add: random SAT?)
68+
* Compression
69+
* Compress a given string given the decompression algorithm (but not the compression algorithm), or decompress a given
70+
compressed string given only the compression algorithm
71+
* (to add: compute huffman tree)
72+
* Hard math problems
73+
* Conway's 99-graph problem (**open**)
74+
* Finding a cycle in the Collatz process (**open**)
75+
2876

2977
## Contributing
3078

problems/ICPC.json

Lines changed: 600 additions & 600 deletions
Large diffs are not rendered by default.

problems/IMO.json

Lines changed: 1279 additions & 1273 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)