Hari2 ini, aku jadi sering harus main2 dengan SMS gateway, dan bikin aplikasi web mini dengan itu. Tentu dengan PHP dan MySQL lagi. Dan sebenernya aku ragu, apa scripting dengan PHP masih bisa kita anggap bagian dari programming, seperti zaman kita dulu masih boleh sering2 main2 dengan C++. Batasnya “etika”-nya apa sih? :) Aku selalu berpikir bahwa programming harus agak mengandung hacking, dengan meletakkan kreativitas personal ke dalam kode; yang membuat program ciptaan seorang programmer jadi suatu yang akan berbeda dengan program programmer lain. Atau mungkin aku — seperti biasa — salah menggunakan istilah lagi :).
Dengan bahasa C, aku pernah membandingkan deret untuk menghitung nilai e dan π. Tentu bilangan natural e melejit lebih cepat ke nilai asimptotiknya. Soalnya aku waktu itu cuma menghitung π sebagai arc tan 1 yang dideretkan sebagai 1 – 1/3 + 1/5 – 1/7 + 1/9 dst. Padahal mungkin programmer lain bisa lebih cepat dengan menggunakan π3/32 = 1 – 1/33 + 1/53 – 1/73 + 1/93 dst.
π3/32 diambil dari π3/(16*2!). Dan ini bisa dilanjutkan ke pangkat ganjil yang lain. Jadi:
π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 …
π3/(42*2!) = 1 – 1/33 + 1/53 – 1/73 + 1/93 …
5*π5/(43*4!) = 1 – 1/35 + 1/55 – 1/75 + 1/95 …
61*π7/(44*6!) = 1 – 1/37 + 1/57 – 1/77 + 1/97 …
1385*π9/(45*8!) = 1 – 1/39 + 1/59 – 1/79 + 1/99 …
50521*π11/(46*10!) = 1 – 1/311 + 1/511 – 1/711 + 1/911 …
Deret angka 1, 1, 5, 61, 1385, 50521, 2702765, 199360981, 19391512145, dan seterusnya itu disebut dengan bilangan-bilangan Euler (Euler numbers). Dia berasal dari sesuatu yang disebut permutasi zigzag. Permutasi zigzag itu kemungkinan kita menderetkan n bilangan p yang berbeda, dengan p1 < p2 > p3 < p4 > dst sampai bilangan n. Dengan kata lain, pi < pi+1 jika i ganjil, dan pi > pi+1 jika i genap. Bolak balik. Zigzag. Untuk n=0, 1, dan 2, tentu hanya ada satu kemungkinan; untuk n=3 ada 2 kemungkinan; untuk n=4 ada 5 kemungkinan; lalu 16, 61, 272, 1385, dan seterusnya. Nah, kita ambil yang genap saja untuk bilangan Euler kita.
Tapi apa kaitannya permutasi ini, dengan Euler, dengan arc tan, dengan π? Nah, itulah asyiknya kalau weekend tidak harus dihabiskan untuk urusan kantor. Jadi ada yang bisa dimainin :)
Sementara itu,
π2/6 = 1 + 1/22 + 1/32 + 1/42 + 1/52 … dan kita bisa memasuki cerita lain …