Coder Social home page Coder Social logo

numauto's Introduction

Numeration-automatic sequences

This project contains code used in a study of k-automata and numeration-automatic sequences.

Installation

Retrieve the source code with Git.

git clone https://github.com/jfjlaros/numauto.git

Compile the main program.

cd numauto/src/sequence
make

Usage

The substitution schema is supplied by entering a list of production rules via standard input. Each production rule has one letter on the left hand side and one or more letters on the right hand side, the parts are separated by the > sign.

The input can be supplied while the program is running. Press Control-d when the substitution schema is fully entered.

./sequence

Alternatively, the substitution schema can be supplied beforehand and piped into the program as follows:

cat << EOF | ./sequence
a>abc
b>aac
c>a
EOF

The output for the example given above, will look like this:

The matrix:
1 2 1 
1 0 0 
1 1 0 

k = 3

The fixed point:
abcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaa
caabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabc
aacaabcaacaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaa
bcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaac
aabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabca
acaabcabcaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaab
caacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaaca
abcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaa
caabcabcaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabc
aacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaa
bcaacaabcabcaacaabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaac
aabcabcaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabca
acaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaab
caacaabcabcaacaabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaacaabcabcaabcabcaaca
abcabcaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaacaabcaa
caabcabcaabcabcaacaabcabcaabcabcaacaabcaacaabcabcaabcabcaacaabcabcaabcabcaacaabc

The numeration system:
1 3 7 17 41 99 239 577

The following sections of the paper are particularly relevant for the interpretation of the results:

  • Section 5: conversion from a substitution to The matrix.
  • Definition 2.0.7: k in this context.
  • Definition 2.0.6: The fixed point.
  • Definition 2.0.8: The numeration system.

Additional programs

This project contains some additional code that was used during the study. Most of the functionality is present in the main program described above.

  • A programming library for k-automata including examples.
  • A programming library for Fibonacci automaton including examples.
  • An implementation of substitutions in general which can be used to verify the correctness of the constructed automata.

Related work

Some new insights gained during the study were shared with the On-Line Encyclopedia of Integer Sequences:

Acknowledgements

The author would like to thank Prof.dr. Robert Tijdeman and Dr. Hendrik Jan Hoogeboom for their numerous comments and insightful ideas.

numauto's People

Contributors

jfjlaros avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.