Faktoradik: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
|||
(15 revisi perantara oleh 12 pengguna tidak ditampilkan) | |||
Baris 1:
{{tanpa referensi}}
'''Faktoradik''' adalah sebuah [[sistem bilangan]] yang setiap posisi [[angka]] memiliki basis sesuai dengan [[faktorial]] dari posisinya. Sistem bilangan ini memungkinkan untuk membangkitkan permutasi dalam urutan [[leksikografik]].
Baris 10 ⟶ 11:
:<math>0 \leq a_i \leq i</math>
== Nilai faktoradik ==
Nilai sebuah faktoradik ''a''<sub>n</sub>...''a''<sub>4</sub>''a''<sub>3</sub>''a''<sub>2</sub>''a''<sub>1</sub>''a''<sub>0</sub> dapat dengan mudah didapat menggunakan formula:
Baris 115 ⟶ 116:
|}
== Mendapatkan Faktoradik dari Sembarang Bilangan ==
Suatu faktoradik bisa diperoleh dari sembarang bilangan <math>n</math> dengan
# Cari <math>i !</math> terbesar di mana <math>i ! < n</math>
Baris 122 ⟶ 123:
# <math>d</math> adalah digit faktoradik ke-<math>i</math>, yaitu <math>a_i</math>
# Ulangi dari langkah kedua, dengan <math>m</math>(sisa bagi) menggantikan <math>n</math>, dan <math>i - 1</math> menggantikan <math>i</math>.
#
Ketika berakhir,
== Permutasi ==
=== Membentuk Permutasi berdasarkan Faktoradik ===▼
▲===Membentuk Permutasi berdasarkan Faktoradik===
Pertama-tama kita harus membuat kesepakatan mengenai indeks. Indeks untuk untai dimulai dengan indeks 0 dari kiri.
:{| class="wikitable"
Baris 151 ⟶ 150:
| 6
|}
Disediakan sebuah untai <math>s</math>, dan sebuah faktoradik <math>f</math>, maka
# Sediakan satu tempat, yaitu <math>s'</math> untuk menampung untai hasil permutasi
# Mulai dari digit <math>f</math> paling kiri (digit dengan indeks posisi paling besar):
#* Ambil huruf dari <math>s</math> di posisi <math>f_i</math>, pindahkan ke <math>s'</math>
# Ulangi hingga tidak ada lagi huruf pada untai <math>s</math>
Ketika
Sebagai contoh, untuk menghasilkan permutasi dari '''abcdefg''', dengan indeks faktoradik 5341200 dengan
:<math>s = \mathbf{abcdefg}</math>
Baris 229 ⟶ 228:
|}
Dan seterusnya, yang jika dituliskan sekaligus adalah seperti ini:
:{| class="wikitable"
! i
Baris 272 ⟶ 271:
|}
== Kode-kode program ==
=== Kode program untuk membangkitkan faktoradik ===
==== Pascal ====
FMax
Sisa
'''for''' i
'''begin'''
f
A[i]
Sisa
'''end''';
=== Kode untuk membangkitkan permutasi dari faktoradik ===
==== Pascal ====
'''function''' Permutasi(Untai: STRING; Faktoradik: '''array of''' INTEGER): STRING;
Baris 305 ⟶ 304:
'''end''';
== Lihat
* [[Kombinadik]]
* [[Permutasi]]
Baris 311 ⟶ 310:
* [[Sistem bilangan]]
== Pranala
[http://msdn2.microsoft.com/en-us/library/aa302371.aspx Using Permutations in .NET for Improved Systems Security] {{Webarchive|url=https://web.archive.org/web/20080412030829/http://msdn2.microsoft.com/en-us/library/aa302371.aspx |date=2008-04-12 }}
[[Kategori:Sistem bilangan]]
[[Kategori:
|