kouzdra (kouzdra) wrote,
kouzdra
kouzdra

Зодачко: решение

Комменты я расскринил.

Решение вроде бы выдумали все - оно простое дополняем функцию mamba (n,х) (количество scannable чисел с характеристикой х и длиной n знаков параметром r:

mamba (n,x,r) - где r означает остаток от деления числа на три (scannable соотвествует r = 0).

После чего она прекрасно расписывается через простую рекурсию по n:

Вариант на Haskell:
mamba n = (mamba' n) !! 0 where
   mamba' 1 = [[ (toInteger . fromEnum) (x `mod` 3 == r) | x <- [0..9]] | r <- [0..2] ]
   mamba' n = [[  sum [mambas !! ((r-d) `mod` 3) !! ((x-d)`mod` 10) | d <- [0..9] ] | 
                         x <- [0..9]] | r <- [0..2]  ]
     where
      mambas = mamba' (n-1)

main = print (mamba 5)
Вариант на С++:
void mamba (long long int res [RAD], int n)
{
  long long int Tab0 [MOD][RAD];
  long long int Tab1 [MOD][RAD];
  for (int j = 0; j != MOD; ++ j)
    for (int i = 0; i != RAD; ++ i)
      Tab0 [j][i] = (i % MOD) == j;

  long long int (* tab ) [RAD] = Tab0;
  long long int (* tab1) [RAD] = Tab1;
  for (int i = 0; i != n-1; ++ i) {
      std::swap (tab, tab1);
      for (int j = 0; j != MOD; ++ j)
	for (int x = 0; x != RAD; ++ x) {
	    tab [j][x] = 0;
	    for (int d = 0; d != RAD; ++ d)
	      tab [j][x] += tab1 [(j-d+9)%MOD][(x-d+10)%10];
	  }
    }

  for (int i = 0; i != RAD; ++ i)
    res [i] = tab [0][i];
}

int main (int argc, char ** argv)
{
  long long int res [RAD];
  mamba (res, 5);
  for (int i = 0; i != RAD; ++ i)
    printf ("%d=%lld\n", i, res [i]);
  return 0;
}
Tags: компутерщина
Subscribe

  • "Трагедия курьера"

    Что забавно - попытки партии и ментов усиливать контроль за всем на практике дают противоположный результат - паспорта у меня в данный момент нет,…

  • Из комментов

    Впрочем у истории с чёрными кораблями были две забавные концовки — одна в Порт-Артуре, другая — в Жемчужной гавани

  • Во всяком культивировании

    всяких покрытых богоматерей, дней оун-упа и прочих мининых-невских-пожарских и тп меня раздражают не поводы (на них мне действительно насрать) а…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment