Skip to main content

discrete-mathematics

Discrete math fundamentals including combinatorics, graph theory, logic, set theory, algorithms, and number theory for computer science and cryptography.

Aller à l'installation

Informations de source

Dépôt
NeuralBlitz/Agent-Gateway
Dernière activité de la source
9 avril 2026 à 10:58
Langue détectée de SKILL.md
anglais
Étoiles
1
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
Discrete Mathematics
description
Discrete math fundamentals including combinatorics, graph theory, logic, set theory, algorithms, and number theory for computer science and cryptography.
license
MIT
compatibility
python>=3.8
audience
computer-scientists, mathematicians, programmers, engineers
category
mathematics
# Discrete Mathematics ## What I Do I provide comprehensive discrete mathematics tools including combinatorics, graph algorithms, logical reasoning, set operations, recurrence relations, and number theory operations essential for computer science and cryptography. ## When to Use Me - Algorithm analysis and design - Cryptography and security - Network and graph problems - Counting and combinatorics - Logic and proof techniques - Optimization problems ## Core Concepts - **Combinatorics**: Permutations, combinations, binomial coefficients - **Graph Theory**: Paths, cycles, connectivity, coloring - **Logic**: Propositional logic, predicates, inference - **Set Theory**: Operations, relations, functions - **Number Theory**: Divisibility, primes, modular arithmetic - **Recurrence Relations**: Linear recurrences, generating functions - **Proof Techniques**: Induction, contradiction, direct proof - **Asymptotic Analysis**: Big O, Omega, Theta notation ## Code Examples ### Combinatorics ```python from math import comb, perm, factorial import numpy as np n, k = 10, 3 combinations = comb(n, k) permutations = perm(n, k) factorial_n = factorial(n) print(f"C(10,3) = {combinations}") print(f"P(10,3) = {permutations}") print(f"10! = {factorial_n}") def multinomial(n_list): total = sum(n_list) result = factorial(total) for n in n_list: result //= factorial(n) return result ``` ### Graph Algorithms ```python from collections import deque def bfs(graph, start): visited = set() queue = deque([start]) visited.add(start) order = [] while queue: node = queue.popleft() order.append(node) for neighbor in graph[node]: if neighbor not in visited: visited.add(neighbor) queue.append(neighbor) return order graph = { 'A': ['B', 'C'], 'B': ['A', 'D', 'E'], 'C': ['A', 'F'], 'D': ['B'], 'E': ['B', 'F'], 'F': ['C', 'E'] } print(f"BFS order: {bfs(graph, 'A')}") ``` ### Modular Arithmetic ```python def extended_gcd(a, b): if b == 0: return (a, 1, 0) else: g, x1, y1 = extended_gcd(b, a % b) x = y1 y = x1 - (a // b) * y1 return (g, x, y) def mod_inverse(a, m): g, x, y = extended_gcd(a, m) if g != 1: return None return x % m print(f"Mod inverse of 17 mod 43: {mod_inverse(17, 43)}") ``` ### Recurrence Relations ```python from functools import lru_cache @lru_cache(None) def fibonacci(n): if n <= 1: return n return fibonacci(n-1) + fibonacci(n-2) print(f"Fibonacci(10): {fibonacci(10)}") def solve_linear_recurrence(coeffs, initial, n): k = len(coeffs) dp = initial[:k] for i in range(k, n+1): next_val = sum(coeffs[j] * dp[i-j-1] for j in range(k)) dp.append(next_val) return dp[n] ``` ### Set Operations ```python A = {1, 2, 3, 4, 5} B = {3, 4, 5, 6, 7} C = {1, 2} union = A | B intersection = A & B difference = A - B symmetric_diff = A ^ B print(f"Union: {union}") print(f"Intersection: {intersection}") print(f"A - B: {difference}") print(f"Symmetric diff: {symmetric_diff}") def cartesian_product(set1, set2): return {(a, b) for a in set1 for b in set2} ``` ## Best Practices 1. **Memoization**: Cache computed results for recursion 2. **Graph Representation**: Choose appropriate structure (adjacency list/matrix) 3. **Modular Arithmetic**: Use pow(a, -1, m) in Python 3.8+ 4. **Combinatorial Growth**: Beware of factorial growth 5. **Algorithm Complexity**: Analyze time and space complexity ## Common Patterns ```python # DFS with recursion def dfs(graph, node, visited=None): if visited is None: visited = set() visited.add(node) for neighbor in graph[node]: if neighbor not in visited: dfs(graph, neighbor, visited) return visited # Topological sort (Kahn's algorithm) def topological_sort(graph): in_degree = {node: 0 for node in graph} for node in graph: for neighbor in graph[node]: in_degree[neighbor] += 1 queue = deque([node for node in in_degree if in_degree[node] == 0]) topo_order = [] while queue: node = queue.popleft() topo_order.append(node) for neighbor in graph[node]: in_degree[neighbor] -= 1 if in_degree[neighbor] == 0: queue.append(neighbor) return topo_order ``` ## Core Competencies 1. Combinatorics and counting 2. Graph algorithms and traversals 3. Modular arithmetic and number theory 4. Set operations and relations 5. Recurrence relations and dynamic programming
Voir sur GitHub