Skip to main content

Riddle solver algorithms for the NYT Digits game

Project description

nyt-digits-solver

Puzzle solver for the NYT Digits game (no longer active).

Given a set of numbers and a target, finds the sequence of arithmetic operations (+, -, *, /) that produces the target. Also lets you explore the full set of values reachable from a given input.

Installation

pip install nyt-digits-solver

Usage

solve

Returns a list of solutions. Each solution is a list of Step(numbers, operation) where operation is the step that produced that state (None for the initial state).

import nyt_digits_solver as ds

solutions = ds.solve([1, 2, 3], target=6)
# [
#   [
#     Step(numbers=[1, 2, 3], operation=None),
#     Step(numbers=[3, 3],    operation='2+1'),
#     Step(numbers=[6],       operation='3+3'),
#   ]
# ]

for step in solutions[0]:
    if step.operation:
        print(f"{step.operation}{step.numbers}")
# 2+1 → [3, 3]
# 3+3 → [6]

Find all solutions instead of just the first:

all_solutions = ds.solve([1, 2, 3, 4, 5, 25], target=452, how_many_sols=None)

explore

Returns the set of all values reachable from the input numbers via any sequence of operations.

reachable = ds.explore([2, 3])
# {1, 5, 6}

452 in ds.explore([1, 2, 3, 4, 5, 25])
# True

CLI

python -m nyt_digits_solver.main -n 1,2,3 -t 6
# Found 1 solution. Took 0.0 seconds.
# Start: [1, 2, 3]
# 2+1 → [3, 3]
# 3+3 → [6]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nyt_digits_solver-0.1.4.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nyt_digits_solver-0.1.4-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file nyt_digits_solver-0.1.4.tar.gz.

File metadata

  • Download URL: nyt_digits_solver-0.1.4.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for nyt_digits_solver-0.1.4.tar.gz
Algorithm Hash digest
SHA256 98caf2ab6e65e0a6ced2be00fac7638230d34cd4ab3cead91ba0af1ecf4bb4a9
MD5 49d7d614e551e9e2ef0081e68ce7eaba
BLAKE2b-256 a7ebbbb76b85f385213f6aca010dcb4c293d577211585bd89e2cf3f59f92e35a

See more details on using hashes here.

File details

Details for the file nyt_digits_solver-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for nyt_digits_solver-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f7dd6ccd7cca3e67323350ffb6f0f854a456d279da0b5a72302e9b7bce15c122
MD5 1ee6f835bc5b35adbdf42be062733aab
BLAKE2b-256 a1a2f5c2f91bddb2d568edfcdc61e88ec4555df28153f290db3b08c42707d238

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page