{"id":34915326,"url":"https://github.com/klb2/distribution-random-walk-restricted-angles","last_synced_at":"2026-05-25T07:41:14.298Z","repository":{"id":305842180,"uuid":"979344464","full_name":"klb2/distribution-random-walk-restricted-angles","owner":"klb2","description":"This repository is accompanying the paper \"On the Distribution of a Two-Dimensional Random Walk with Restricted Angles\" (arXiv:2507.15475).","archived":false,"fork":false,"pushed_at":"2026-05-15T14:56:21.000Z","size":52,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-15T16:36:23.004Z","etag":null,"topics":["complex-random-walk","over-the-air-computation","probability-distribution","random-walk","random-walk-restricted-angles","research-paper","research-paper-implementation","two-dimensional-random-walk"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/2507.15475","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/klb2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support.py","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-07T11:21:30.000Z","updated_at":"2026-05-15T14:50:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"0ed86b0d-9acd-47c9-8eb9-497e932e8308","html_url":"https://github.com/klb2/distribution-random-walk-restricted-angles","commit_stats":null,"previous_names":["klb2/distribution-random-walk-restricted-angles"],"tags_count":1,"template":false,"template_full_name":"klb2/reproducible-paper-python-template","purl":"pkg:github/klb2/distribution-random-walk-restricted-angles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klb2%2Fdistribution-random-walk-restricted-angles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klb2%2Fdistribution-random-walk-restricted-angles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klb2%2Fdistribution-random-walk-restricted-angles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klb2%2Fdistribution-random-walk-restricted-angles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klb2","download_url":"https://codeload.github.com/klb2/distribution-random-walk-restricted-angles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klb2%2Fdistribution-random-walk-restricted-angles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33465616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T06:32:55.349Z","status":"ssl_error","status_checked_at":"2026-05-25T06:32:35.322Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["complex-random-walk","over-the-air-computation","probability-distribution","random-walk","random-walk-restricted-angles","research-paper","research-paper-implementation","two-dimensional-random-walk"],"created_at":"2025-12-26T12:17:28.259Z","updated_at":"2026-05-25T07:41:14.293Z","avatar_url":"https://github.com/klb2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# On the Distribution of a Two-Dimensional Random Walk with Restricted Angles\n\n[![Marimo](https://img.shields.io/badge/Launch-Marimo_notebook-hsl(168%2C61%25%2C28%25))](https://marimo.app/?src=https%3A%2F%2Fraw.githubusercontent.com%2Fklb2%2Fdistribution-random-walk-restricted-angles%2Frefs%2Fheads%2Fmaster%2FInteractive.py)\n![GitHub](https://img.shields.io/github/license/klb2/distribution-random-walk-restricted-angles)\n[![arXiv](https://img.shields.io/badge/arXiv-2507.15475-informational)](https://arxiv.org/abs/2507.15475)\n\n\nThis repository is accompanying the paper [\"On the Distribution of a Two-Dimensional Random Walk with Restricted Angles\"](https://arxiv.org/abs/2507.15475) (Karl-Ludwig Besser, Jul. 2025. [arXiv:2507.15475](https://arxiv.org/abs/2507.15475)).\n\nThe idea is to give an interactive version of the calculations and presented\nconcepts to the reader. One can also change different parameters and explore\ndifferent behaviors on their own.\n\n\n## File List\nThe following files are provided in this repository:\n\n- `run.sh`: Bash script that reproduces the figures presented in the paper.\n- `util.py`: Python module that contains utility functions, e.g., for saving results.\n- `simulation_two_steps.py`: Python script that contains the simulation for a random walk with two steps.\n- `simulation_three_steps.py`: Python script that contains the simulation for a random walk with three steps.\n- `simulation_many_steps.py`: Python script that contains the simulation for a random walk with many steps (large N approximation).\n- `simulation_support.py`: Python script that contains the simulation for exploring the support of the random walk.\n- `example_ota_computation.py`: Python script that contains the over-the-air computation application example.\n- `truncation_error.py`: Python script that calculates the truncation error of the large-N approximation for the distribution of the radius.\n- `gx2.py`: Python module that contains functions to calculate the PDF and CDF of a generalized chi-square distribution.\n- `many_steps.py`: Python module that contains the functions for the large N approximation.\n- `single_step.py`: Python module that contains the functions for a random walk with a single step.\n- `two_steps.py`: Python module that contains the functions for a random walk with two steps.\n- `three_steps.py`: Python module that contains the functions for a random walk with three steps.\n- `support.py`: Python module that contains the functions to calculate the support of the joint distribution\n- `general_n.wl`: Mathematica script calculating some expressions for the case of a general number of steps.\n- `large_n.wl`: Mathematica script calculating some expressions of the approximations for a large number of steps.\n- `two_steps.wl`: Mathematica script calculating some expressions for the case of two steps.\n\n\n## Usage\n### Running it online\nThe easiest way is to use the official [marimo](https://marimo.app/) playground\nto run the notebook online. Simply navigate to [https://marimo.app/?src=https%3A%2F%2Fraw.githubusercontent.com%2Fklb2%2Fdistribution-random-walk-restricted-angles%2Frefs%2Fheads%2Fmaster%2FInteractive.py](https://marimo.app/?src=https%3A%2F%2Fraw.githubusercontent.com%2Fklb2%2Fdistribution-random-walk-restricted-angles%2Frefs%2Fheads%2Fmaster%2FInteractive.py)\nto run the notebooks in your browser without setting everything up locally.\n\n### Local Installation\nIf you want to run it locally on your machine, Python3 and marimo (for the\ninteractive notebook) are needed.\nThe present code was developed and tested with the following versions:\n\n- Python 3.13.3\n- numpy 2.3.0\n- scipy 1.15.3\n- pandas 2.2.3\n- joblib 1.4.2\n- marimo 0.13.15\n\nMake sure you have [Python3](https://www.python.org/downloads/) installed on\nyour computer.\nYou can then install the required packages by running\n```bash\npip3 install -r requirements.txt\n```\nThis will install all the needed packages which are listed in the requirements \nfile.\n\n\nFinally, you can run the Marimo notebooks with\n```bash\nmarimo run Interactive.py\n```\n\nYou can also recreate the figures from the paper by running\n```bash\nbash run.sh\n```\n\n\n## Acknowledgements\nThis research was supported by Security Link.\n\n\n## License and Referencing\nThis program is licensed under the MIT license. If you in any way use this\ncode for research that results in publications, please cite our original\narticle listed above.\n\nYou can use the following BibTeX entry\n```bibtex\n@article{Besser2026distribution,\n  author = {Besser, Karl-Ludwig},\n  title = {On the Distribution of a Two-Dimensional Random Walk with Restricted Angles},\n  journal = {IEEE Transactions on Signal Processing},\n  year = {2026},\n  eprinttype = {arXiv},\n  eprint = {2507.15475},\n  eprintclass = {eess.SP},\n}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklb2%2Fdistribution-random-walk-restricted-angles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklb2%2Fdistribution-random-walk-restricted-angles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklb2%2Fdistribution-random-walk-restricted-angles/lists"}