Презентация Четвертухина Александра


Har bir tangadan olmasligi(0) yoki 1 ta olishi, yoki 2 ta olishi mumkin. Uchli sanoq sistemasidagi mumkin bo’lgan kombinat-siyalari soni 3n . Bu qiymatini pow() funksiyasisiz topish kerak



Yüklə 18,53 Kb.
səhifə6/7
tarix25.12.2023
ölçüsü18,53 Kb.
#194874
1   2   3   4   5   6   7
11701521 (1)

Har bir tangadan olmasligi(0) yoki 1 ta olishi, yoki 2 ta olishi mumkin. Uchli sanoq sistemasidagi mumkin bo’lgan kombinat-siyalari soni 3n . Bu qiymatini pow() funksiyasisiz topish kerak.

  • char c[100];
  • string s;
  • int pow = 1;
  • for (int i = 1; i <= n; i++) {
  • pow *= 3;
  • }

for (int mask = 0; mask < pow; mask++) {

  • for (int mask = 0; mask < pow; mask++) {
  • long long sum = 0;
  • itoa(mask, c, 3);
  • s = string(c);
  • while ((int)s.length() != n)
  • s = "0"+s;
  • for(int i = 0; i < n; i++) {
  • sum += w[i] * (s[i]-48);
  • }
  • if (sum==X)
  • ans++;
  • }
  • cout<

Uchlik pereborni ham ikkilik perebordagi kami har safar keyingi ketma-ketlikni topib borish mumkin. Oshirish mumkin bo’lgan eng kichik (0 yoki 1)razriyadni topamiz, uni birga oshiramiz, undan keyingilarining barchasini 0 ga aylantiramiz.

Uchlik pereborni ham ikkilik perebordagi kami har safar keyingi ketma-ketlikni topib borish mumkin. Oshirish mumkin bo’lgan eng kichik (0 yoki 1)razriyadni topamiz, uni birga oshiramiz, undan keyingilarining barchasini 0 ga aylantiramiz.

Ikkilik rekursiv perebor.

Barcha ikkilik ketma ketliklarni rekursiv hosil qilish ham mumkin.

int a[100];

  • int a[100];
  • int n;
  • void go(int pos) {
  • if (pos==n) {
  • for (int i = 0; i < n; i++) {
  • cout<
  • }
  • cout<<"\n";
  • return;
  • }
  • a[pos] = 0;
  • go(pos+1);
  • a[pos] = 1;
  • go(pos+1);
  • }
  • int main() {
  • cin>>n;
  • go(0);
  • }
  • pos

0
0
0
1
0
0
0
0
1
0
1
0
1

Yüklə 18,53 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin