Satvik Saha
Hey there!
I'm a fifth year graduate student at IISER Kolkata, writing my Master's Thesis in Mathematics and Statistics.
I'm still honing my skills in basic web design, as well as programming with C, Java and Python. I have some experience with Markdown and LaTeX.
I'm also an amateur chess player, speedcuber and violinist.
Typst Theorems
I wrote a package which implements numbered theorem environments for Typst, a new markup-based typesetting language.
CSokoban
Building on the work done in CSnake, here's an implementation of the classic game 'sokoban' for the terminal, written in C.
CSnake
Here's a rough implementation of the classic game 'snake' for the terminal, written in C. This uses ANSI control characters directly, without a library like ncurses.
WeLearn on the Command Line
Parth, Abhay, Amarjeet and I wrote a simple command line interface for our institute's online learning management system, WeLearn. Written in python, it interfaces with the Moodle Web Service API. Check the GitHub link below for more information!
Conway's Game of Life
I wrote an implementation of Conway's Game of Life for the terminal in python. This was my first time using the curses library.
This particular pattern was designed by xkcd as a tribute to John Conway.
On k-bonacci numbers
A natural generalization of the Fibonacci sequence involves investigating the recurrence relation $$ F^{(k)}_n \;=\; F^{(k)}_{n-1} + F^{(k)}_{n-2} + \dots + F^{(k)}_{n-k}. $$
In this article, we derive a particularly elegant Binet-like formula for generalized k-step Fibonacci numbers. $$ F^{(k)}_n \;=\; \sum_{i = 1}^k \left(\prod_{j\neq i}\frac{1}{(\alpha_i - \alpha_j)}\right)\alpha_i^n,$$ where \(\alpha_i\) are the roots of \(p(x) = x^k - x^{k-1} - x^{k-2} - \dots - 1\).
The ratio of successive terms of such a sequence converges to the k-bonacci constant. $$ \lim_{n \to \infty} \frac{F^{(k)}_{n + 1}}{F^{(k)}_n} \;=\; \alpha_k, $$ where \(\alpha_k\) is the dominant root of \(p(x)\).
A polar plot of the Fibonacci sequence in the form \((F_n, F_n)\), zoomed out by a factor of \(2^{32}\).
Inspired by one of Sayan Dutta's observations.
minesweeper
A classic game of minesweeper, implemented in javascript.
5906
Inspired by Matt Parker's video, I wrote some code to play the superpermutation for n = 7, length 5906.
A superpermutation is a string formed from a set of n symbols, such that every one of the n! permutations of those symbols appears at least once as a contiguous block of n characters in the string.
Read more about superpermutations in Greg Egan's article.
Recommended reading
  • The Little Prince, Antoine de Saint-Exupéry
  • The Hitchhiker's Guide to the Galaxy, Douglas Adams
  • The Lord of the Rings, J.R.R. Tolkien
  • His Dark Materials, Philip Pullman
  • The Mysterious Island, Jules Verne
  • A Short History of Nearly Everything, Bill Bryson
  • Gödel, Escher, Bach, Douglas Hofstadter