hp
jblog
toc

Palindrome Function

2016-07-02, post № 131

mathematics, programming, Python, #p(n), #sum

To get a number’s palindrome in a programming language like python is easy. There are ways to swap between integer and string and strings can be manipulated.

>>> n = 1234
>>> int(str(n)[::-1])
4321

But I wanted to create a mathematical function 𝑝(𝑛), which returns an integer’s palindrome. Thus 𝑝(𝟣𝟤𝟥𝟦) = 𝟦𝟥𝟤𝟣.

Firstly, I needed a way of determining the number’s size. In base 𝟣𝟢 the length is calculated using the logarithm to said base.

l(n)=\lfloor\log_{10}{n}\rfloor+1
l(1234)=\lfloor\log_{10}{1234}\rfloor=\lfloor 3.09\rfloor+1=4

Secondly, I need a way to isolate a specific digit. Using the floor function, this function returns the 𝑖-th digit (starting on the right with 𝑖 = 𝟢).

d_i(n)=\lfloor\frac{n}{10^i}\rfloor-\lfloor\frac{n}{10^{i+1}}\rfloor\cdot 10
d_2(1234)=\lfloor\frac{1234}{10^2}\rfloor-\lfloor\frac{1234}{10^{2+1}}\rfloor\cdot 10=\lfloor 12.34\rfloor-\lfloor 1.23\rfloor\cdot 10=12-1\cdot 10=2

Thirdly, both of these functions can be used to split up the number into a sum.

n=\sum\limits_{i=0}^{l(n)-1}\Big[d_i(n)\cdot 10^{i}\Big]=\sum\limits_{i=0}^{\lfloor\log_{10}{n}\rfloor}\Big[\big(\lfloor\frac{n}{10^i}\rfloor-\lfloor\frac{n}{10^{i+1}}\rfloor\cdot 10\big)\cdot 10^{i}\Big]

Fourthly, I only need to swap the power of ten at the end to get my palindrome function.

p(n)=\sum\limits_{i=0}^{l(n)-1}\Big[d_i(n)\cdot 10^{l(n)-1-i}\Big]=\sum\limits_{i=0}^{\lfloor\log_{10}{n}\rfloor}\Big[\big(\lfloor\frac{n}{10^i}\rfloor-\lfloor\frac{n}{10^{i+1}}\rfloor\cdot 10\big)\cdot 10^{\lfloor\log_{10}{n}\rfloor-i}\Big]

Thus the final function 𝑝(𝑛) is defined.

p(n)=\sum\limits_{i=0}^{\lfloor\log_{10}{n}\rfloor}\Big[\big(\lfloor\frac{n}{10^i}\rfloor-\lfloor\frac{n}{10^{i+1}}\rfloor\cdot 10\big)\cdot 10^{\lfloor\log_{10}{n}\rfloor-i}\Big]

To check if the formula is correct, I use 𝟣𝟤𝟥𝟦 (as seen above).

p(1234)=\sum\limits_{i=0}^{\lfloor\log_{10}{1234}\rfloor}\Big[\big(\lfloor\frac{1234}{10^i}\rfloor-\lfloor\frac{1234}{10^{i+1}}\rfloor\cdot 10\big)\cdot 10^{\lfloor\log_{10}{1234}\rfloor-i}\Big]
p(1234)=\sum\limits_{i=0}^{3}\Big[\big(\lfloor\frac{1234}{10^i}\rfloor-\lfloor\frac{1234}{10^{i+1}}\rfloor\cdot 10\big)\cdot 10^{3-i}\Big]
p(1234)=d_0(1234)\cdot 10^3+d_1(1234)\cdot 10^2+d_2(1234)\cdot 10^1+d_3(1234)\cdot 10^0
p(1234)=4000+300+20+1=4321

Jimon

2016-06-25, post № 130

games, programming, Pygame, Python, #color, #color memory, #memeory, #memory game, #remember, #sequence, #Simon, #Simon Says

This game is a recreation of the famous game Simon. In the game there are four colors which form a sequence that is expanding every cycle. The aim of the game is to memorize said sequence as far as possible.For more information on the Simon game visit this Wikipedia entry.

Controls

  • Click on the colored buttons to press them.
jimon-0.png
jimon-1.png
jimon-2.png
Source code: jimon.py

Numerals

2016-06-18, post № 129

programming, Python, #number words, #numbers, #numbers to words, #numeral, #words

This program takes a number and calculate it’s linguistic numeral.The number 𝟥 returns the numeral ‘three’, 𝟧𝟪 returns ‘fifty-eight’ and 𝟥𝟣𝟦𝟣𝟧.𝟫𝟤𝟨𝟧𝟥𝟧 returns ‘thirty-one thousand four hundred fifteen point nine two six five three five’.

numerals.png
Source code: numerals.py

Leaf

2016-06-11, post № 128

art, haiku, poetry, #anim gif, #animated, #animated gif, #cliff, #fall, #foliage, #gif

A leaf on a tree
gets blown away by the wind
and falls down a cliff.

leaf.gif

Cycloids

2016-06-04, post № 127

mathematics, programming, Pygame, Python, #circle, #circles, #curve, #cycloid, #epi, #epicycloid, #geometry, #hypo, #hypocycloid, #rolling, #trace

A cycloid is the curve generated by tracing a point on a smaller circle rolling around an bigger circle.
The word cycloid comes from the greek word “κύκλος” meaning “circle”. There are epicycloids and hypocycloids (smaller circle located above and beneath the bigger circle).
The cycloid is determined by the ratio between the two circle’s radii k=\frac{R}{r}.
More information can be found on this Wikipedia entry.

cycloids-8_k2.1_hypo.png
cycloids-9_k2.1_epi.png
cycloids-14_k7.2_hypo.png
Source code: cycloids.py

Sierpiński TIrangle

2016-05-28, post № 126

BASIC, mathematics, programming,

Using the same method used in my previous Sierpiński Triangle program, which is written in Python, I wrote a fractal generator for my graphing calculator TI-84 Plus in BASIC.

sierpinski-tirangle-2.png
sierpinski-tirangle-4.png
sierpinski-tirangle-9.png
Source code: sierpinski-tirangle.basic

TI-99/4A Primes

2016-05-21, post № 125

BASIC, mathematics, programming, #old hardware, #prime, #prime generation, #Texas Instruments, #TI

Being a fan of old hardware, I used the TI-99/4A (released in 1981) to calculate some primes.
The code is written in BASIC, the programming language found on most computers of this era.
Further information on the TI can be found in this Wikipedia article.

ti-99-4a_start-screen.jpg
ti-99-4a_prime-program.jpg
ti-99-4a_hardware.jpg
Source code: ti-99-4a-primes.basic

Pentecost II

2016-05-16, post № 124

art, #anim, #anim gif, #animated, #animated gif, #church, #gif, #pixel, #pixel guy

Celebrating Pentecost.

pentecost-ii.gif
Jonathan Frech's blog; built 2024/10/27 23:46:30 CET