ΠΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΡΠΊΡΡΡ e[M] ,.
Π³Π΄Π΅ k — ΡΡΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°, Π° w — ΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°.
ΠΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ (Ρ
ΡΠΎΠΌΠΎΡΠΎΠΌΡ) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° rukzak. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ a[M] ={0,1}, Π³Π΄Π΅ a[i]=0 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½Π΅ Π±ΡΠ» ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΡΡΠΊΠ·Π°ΠΊ, a[i]=1 — ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΡΡΠΊΠ·Π°ΠΊ. ΠΠΎΠ»Π΅ Wn — ΡΡΠΌΠΌΠ° ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π³Π΅Π½ΠΎΠ², Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°Π²Π½ΠΎ 1, Ρ. Π΅. ΡΡΠΌΠΌΠ° ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π² ΡΡΠΊΠ·Π°ΠΊ, Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:. Kn — Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ½Π΅ΡΡ-ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΉ Π΄Π»Ρ Ρ
ΡΠΎΠΌΠΎΡΠΎΠΌΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅: .
ΠΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
Π³Π΄Π΅ V — ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΡΡΠΊΠ·Π°ΠΊΠ°.
Π ΡΡΠ½ΠΊΡΠΈΠΈ rukzak* create () ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅. ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π»Ρ ΠΎΡΠ±ΠΎΡΠ° ΠΎΡΠΎΠ±Π΅ΠΉ Π² ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΠ½ΠΈΡΠ½ΡΠΉ ΠΎΡΠ±ΠΎΡ. Π’ΡΡΠ½ΠΈΡΠ½ΡΠΉ ΠΎΡΠ±ΠΎΡ — ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ 2 ΡΠ°Π·Π½ΡΠ΅ ΠΎΡΠΎΠ±ΠΈ, ΠΈΠ· Π½ΠΈΡ
Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ 1 ΡΠ°ΠΌΠ°Ρ ΡΠΈΠ»ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. ΠΡΠ±ΠΎΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π² ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π½Π΅ ΡΡΠ°Π½Π΅Ρ N ΠΎΡΠΎΠ±Π΅ΠΉ. Π Π΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° rukzak.
Π‘ΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΠ»Ρ ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΎΡΠΎΠ±ΠΈ ΠΈΠ· ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΡΠΊΠ° ΡΠ°Π·ΡΡΠ²Π°.
1010 1010 1010 1111.
+ =>
- 0000 1111 0000 1010
- 10 101 010 10 1 111
+ =>
00 1 111 00 101 010.
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² Π½Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡ. ΠΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ N ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ².
ΠΡΡΠ°ΡΠΈΡ.
ΠΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ. ΠΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΈΠ»ΠΈ Π½Π΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π³Π΅Π½ ΠΏΠΎΡΠΎΠΌΠΊΠ° a[i], ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π½Π΅ΡΡΡ ΠΌΡΡΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ a[i]=0, ΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ Π½Π° a[i]=1. ΠΡΠ»ΠΈ a[i]=0, ΡΠΎ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
- 1010 1 010 => 1010 0 010
- 101 0 1010 => 101 1 1010
ΠΠΎΡΠΎΠΌΠΊΠ°, ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π½Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡ.
ΠΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ ΡΠ°ΡΡΡ ΠΎΡΠΎΠ±Π΅ΠΉ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΠ½Π΅ΡΡ-ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. Π ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ — ΡΡΠΎ ΡΠ°ΠΌΡΠ΅ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±ΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° rukzak.