Lompat ke isi

Faktoradik: Perbedaan antara revisi

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Maintenance script (bicara | kontrib)
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 28365542; atribusi sumber disertakan.
 
Maintenance script (bicara | kontrib)
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi
 
Baris 18: Baris 18:


Posisi setiap bilangan, sama seperti pada sistem bilangan posisional lainnya, dinomori mulai dari 0 dari sebelah kanan.
Posisi setiap bilangan, sama seperti pada sistem bilangan posisional lainnya, dinomori mulai dari 0 dari sebelah kanan.
:
:{| class="wikitable"
|-
| Bilangan ke
| 5
| 4
| 3
| 2
| 1
| 0
|-
| Bilangan
| 0
| 2
| 1
| 1
| 1
| 0
|-
| Faktorial
| 120
| 24
| 6
| 2
| 1
| 1
|}


Sehingga nilainya adalah sebesar:
Sehingga nilainya adalah sebesar:
Baris 24: Baris 49:


Di bawah ini adalah daftar 24 faktoradik pertama beserta nilainya:
Di bawah ini adalah daftar 24 faktoradik pertama beserta nilainya:
:
:{| class="wikitable"
|-
! Faktoradik
! Nilai
! Faktoradik
! Nilai
! Faktoradik
! Nilai
! Faktoradik
! Nilai
|-
| 0, 0, 0, 0
| 0
| 1, 0, 0, 0
| 6
| 2, 0, 0, 0
| 12
| 3, 0, 0, 0
| 18
|-
| 0, 0, 1, 0
| 1
| 1, 0, 1, 0
| 7
| 2, 0, 1, 0
| 13
| 3, 0, 1, 0
| 19
|-
| 0, 1, 0, 0
| 2
| 1, 1, 0, 0
| 8
| 2, 1, 0, 0
| 14
| 3, 1, 0, 0
| 20
|-
| 0, 1, 1, 0
| 3
| 1, 1, 1, 0
| 9
| 2, 1, 1, 0
| 15
| 3, 1, 1, 0
| 21
|-
| 0, 2, 0, 0
| 4
| 1, 2, 0, 0
| 10
| 2, 2, 0, 0
| 16
| 3, 2, 0, 0
| 22
|-
| 0, 2, 1, 0
| 5
| 1, 2, 1, 0
| 11
| 2, 2, 1, 0
| 17
| 3, 2, 1, 0
| 23
|}


== Mendapatkan Faktoradik dari Sembarang Bilangan ==
== Mendapatkan Faktoradik dari Sembarang Bilangan ==
Baris 40: Baris 129:
=== 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.
Pertama-tama kita harus membuat kesepakatan mengenai indeks. Indeks untuk untai dimulai dengan indeks 0 dari kiri.
:
:{| class="wikitable"
|-
| Untai
| a
| b
| c
| d
| e
| f
| g
|-
| Indeks
| 0
| 1
| 2
| 3
| 4
| 5
| 6
|}
Disediakan sebuah untai <math>s</math>, dan sebuah faktoradik <math>f</math>, maka algoritma untuk menghasilkan sebuah permutasi dari <math>s</math> adalah:
Disediakan sebuah untai <math>s</math>, dan sebuah faktoradik <math>f</math>, maka algoritma untuk menghasilkan sebuah permutasi dari <math>s</math> adalah:
# Sediakan satu tempat, yaitu <math>s'</math> untuk menampung untai hasil permutasi
# Sediakan satu tempat, yaitu <math>s'</math> untuk menampung untai hasil permutasi
Baris 56: Baris 164:
Disediakan <math>s' = \epsilon</math> (masih kosong).
Disediakan <math>s' = \epsilon</math> (masih kosong).


:
:{| class="wikitable"
|-
| Untai
| a
| b
| c
| d
| e
| f
| g
|-
| Indeks
| 0
| 1
| 2
| 3
| 4
| 5
| 6
|}


Pertama, mulai dari <math>f_6</math>, yaitu 5. Kemudian pindahkan huruf ke-5 (indeks 5) pada untai <math>s</math> ke untai <math>s'</math>, yaitu huruf '''f'''. Kondisi <math>s</math> dan <math>s'</math> sekarang menjadi <math>s = \mathbf{abcdeg}</math> dan <math>s' = \mathbf{f}</math>
Pertama, mulai dari <math>f_6</math>, yaitu 5. Kemudian pindahkan huruf ke-5 (indeks 5) pada untai <math>s</math> ke untai <math>s'</math>, yaitu huruf '''f'''. Kondisi <math>s</math> dan <math>s'</math> sekarang menjadi <math>s = \mathbf{abcdeg}</math> dan <math>s' = \mathbf{f}</math>
Baris 62: Baris 189:
Dengan <math>s</math> sekarang menjadi:
Dengan <math>s</math> sekarang menjadi:


:
:{| class="wikitable"
|-
| Untai
| a
| b
| c
| d
| e
| g
|-
| Indeks
| 0
| 1
| 2
| 3
| 4
| 5
|}


Bilangan kedua dari <math>f</math>, yaitu <math>f_5</math> adalah 3, maka pindahkan huruf ke-3 pada untai <math>s</math> ke untai <math>s'</math>. Maka kondisinya menjadi <math>s = \mathbf{abceg}</math> dan <math>s' = \mathbf{fd}</math>
Bilangan kedua dari <math>f</math>, yaitu <math>f_5</math> adalah 3, maka pindahkan huruf ke-3 pada untai <math>s</math> ke untai <math>s'</math>. Maka kondisinya menjadi <math>s = \mathbf{abceg}</math> dan <math>s' = \mathbf{fd}</math>


:
:{| class="wikitable"
|-
| Untai
| a
| b
| c
| e
| g
|-
| Indeks
| 0
| 1
| 2
| 4
| 6
|}


Dan seterusnya, yang jika dituliskan sekaligus adalah seperti ini:
Dan seterusnya, yang jika dituliskan sekaligus adalah seperti ini:
:
:{| class="wikitable"
! i
! <math>f_i</math>
! <math>s</math>
! <math>s'</math>
|-
| 6
| 5
| abcdeg
| f
|-
| 5
| 3
| abceg
| fd
|-
| 4
| 4
| abce
| fdg
|-
| 3
| 1
| ace
| fdgb
|-
| 2
| 2
| ac
| fdgbe
|-
| 1
| 0
| c
| fdgbea
|-
| 0
| 0
|
| fdgbeac
|}


== Kode-kode program ==
== Kode-kode program ==
=== Kode program untuk membangkitkan faktoradik ===
=== Kode program untuk membangkitkan faktoradik ===
==== Pascal ====
==== Pascal ====
   FMax:= CariFaktorialTerbesar(Bilangan);
   FMax:= CariFaktorialTerbesar(Bilangan);
   Sisa:= Bilangan;
   Sisa:= Bilangan;
Baris 86: Baris 284:
=== Kode untuk membangkitkan permutasi dari faktoradik ===
=== Kode untuk membangkitkan permutasi dari faktoradik ===
==== Pascal ====
==== Pascal ====
   '''function''' Permutasi(Untai: STRING; Faktoradik: '''array of''' INTEGER): STRING;
   '''function''' Permutasi(Untai: STRING; Faktoradik: '''array of''' INTEGER): STRING;
   '''var'''
   '''var'''
Baris 112: Baris 309:
== Pranala luar ==
== Pranala luar ==
[http://msdn2.microsoft.com/en-us/library/aa302371.aspx Using Permutations in .NET for Improved Systems Security]
[http://msdn2.microsoft.com/en-us/library/aa302371.aspx Using Permutations in .NET for Improved Systems Security]


== Sumber dan atribusi ==
== Sumber dan atribusi ==


Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Faktoradik&oldid=28365542 Wikipedia bahasa Indonesia], revisi 28365542 (2025-11-07T03:51:53Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Faktoradik&oldid=28365542 Wikipedia bahasa Indonesia], revisi 28365542 (2025-11-07T03:51:53Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
<!-- WIKI_UNISSULA_PRESENTATION_V4 -->

Revisi terkini sejak 25 Agustus 2026 14.02

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.

Faktoradik memiliki bentuk deretan bilangan an...a4a3a2a1a0, dengan setiap bilangan ai bersifat:

ai

dan

0aii

Nilai faktoradik

Nilai sebuah faktoradik an...a4a3a2a1a0 dapat dengan mudah didapat menggunakan formula:

i=0nai.i!

Sebagai contoh, bilangan 2,1,1,1,0

Posisi setiap bilangan, sama seperti pada sistem bilangan posisional lainnya, dinomori mulai dari 0 dari sebelah kanan.

Bilangan ke 5 4 3 2 1 0
Bilangan 0 2 1 1 1 0
Faktorial 120 24 6 2 1 1

Sehingga nilainya adalah sebesar: 2×4! + 1×3! + 1×2! + 1×1! + 0×0! = 57

Di bawah ini adalah daftar 24 faktoradik pertama beserta nilainya:

Faktoradik Nilai Faktoradik Nilai Faktoradik Nilai Faktoradik Nilai
0, 0, 0, 0 0 1, 0, 0, 0 6 2, 0, 0, 0 12 3, 0, 0, 0 18
0, 0, 1, 0 1 1, 0, 1, 0 7 2, 0, 1, 0 13 3, 0, 1, 0 19
0, 1, 0, 0 2 1, 1, 0, 0 8 2, 1, 0, 0 14 3, 1, 0, 0 20
0, 1, 1, 0 3 1, 1, 1, 0 9 2, 1, 1, 0 15 3, 1, 1, 0 21
0, 2, 0, 0 4 1, 2, 0, 0 10 2, 2, 0, 0 16 3, 2, 0, 0 22
0, 2, 1, 0 5 1, 2, 1, 0 11 2, 2, 1, 0 17 3, 2, 1, 0 23

Mendapatkan Faktoradik dari Sembarang Bilangan

Suatu faktoradik bisa diperoleh dari sembarang bilangan n dengan algoritma sebagai berikut:

  1. Cari i! terbesar di mana i!<n
  2. Bagi n dengan i!, akan didapatkan hasil bagi d dan sisa bagi m.
  3. d adalah digit faktoradik ke-i, yaitu ai
  4. Ulangi dari langkah kedua, dengan m(sisa bagi) menggantikan n, dan i1 menggantikan i.
  5. Algoritma selesai jika i sudah mencapai 0.

Ketika berakhir, algoritma ini akan menghasilkan deretan faktoradik an...a4a3a2a1a0.

Permutasi

Membentuk Permutasi berdasarkan Faktoradik

Pertama-tama kita harus membuat kesepakatan mengenai indeks. Indeks untuk untai dimulai dengan indeks 0 dari kiri.

Untai a b c d e f g
Indeks 0 1 2 3 4 5 6

Disediakan sebuah untai s, dan sebuah faktoradik f, maka algoritma untuk menghasilkan sebuah permutasi dari s adalah:

  1. Sediakan satu tempat, yaitu s untuk menampung untai hasil permutasi
  2. Mulai dari digit f paling kiri (digit dengan indeks posisi paling besar):
    • Ambil huruf dari s di posisi fi, pindahkan ke s
  3. Ulangi hingga tidak ada lagi huruf pada untai s

Ketika algoritma ini selesai, s akan merupakan permutasi dari s yang sesuai dengan f

Sebagai contoh, untuk menghasilkan permutasi dari abcdefg, dengan indeks faktoradik 5341200 dengan algoritma tersebut, diberikan:

s=𝐚𝐛𝐜𝐝𝐞𝐟𝐠

dan

f=(5,3,4,1,2,0,0)

Disediakan s=ϵ (masih kosong).

Untai a b c d e f g
Indeks 0 1 2 3 4 5 6

Pertama, mulai dari f6, yaitu 5. Kemudian pindahkan huruf ke-5 (indeks 5) pada untai s ke untai s, yaitu huruf f. Kondisi s dan s sekarang menjadi s=𝐚𝐛𝐜𝐝𝐞𝐠 dan s=𝐟

Dengan s sekarang menjadi:

Untai a b c d e g
Indeks 0 1 2 3 4 5

Bilangan kedua dari f, yaitu f5 adalah 3, maka pindahkan huruf ke-3 pada untai s ke untai s. Maka kondisinya menjadi s=𝐚𝐛𝐜𝐞𝐠 dan s=𝐟𝐝

Untai a b c e g
Indeks 0 1 2 4 6

Dan seterusnya, yang jika dituliskan sekaligus adalah seperti ini:

i fi s s
6 5 abcdeg f
5 3 abceg fd
4 4 abce fdg
3 1 ace fdgb
2 2 ac fdgbe
1 0 c fdgbea
0 0 fdgbeac

Kode-kode program

Kode program untuk membangkitkan faktoradik

Pascal

 FMax:= CariFaktorialTerbesar(Bilangan);
 Sisa:= Bilangan;
 for i:= FMax downto 0 do
 begin
   f:= Faktorial(i);
   A[i]:= Sisa div f;
   Sisa:= Sisa mod f;
 end;

Kode untuk membangkitkan permutasi dari faktoradik

Pascal

 function Permutasi(Untai: STRING; Faktoradik: array of INTEGER): STRING;
 var
   Hasil: STRING;
   i, Indeks: INTEGER;
 begin
   Hasil:=;
   for i:=Low(Faktoradik) to High(Faktoradik) do
   begin
     Indeks:=Faktoradik[i] + 1;       // Indeks ditambah 1 karena indeks array berawal dari 0
     Hasil:=Hasil + Untai[ Indeks ];
     Delete(Untai, Indeks, 1);
   end;
   Permutasi:=Hasil;
 end;

Lihat pula

Pranala luar

Using Permutations in .NET for Improved Systems Security

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 28365542 (2025-11-07T03:51:53Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.