Obliczasnie kombinacji

0

Witam mam problem mam 6 literowe slowo i musze obliczyc ile mam kombinacji na duze i male litery np:
ziomek
ZioMek
ZIomEk
jaki to bedzie wzor ?

0

2^6? -.-

0

dzieki ;p aale sie wyglupilem l;/

0

<font size="3"> :-D sprzedam sanki na łatwiznę idziesz :D liczmy liczmy ...
:P tak jak kiedyś w liceum dodawało sie u nas 3+3 wzorami skróconego mnożenia tak i tu pobawmy się [diabel] </span>

Najpierw mamy same małe - 1 możliwość
potem wybieramy kolejno dowolną jedną dużą literkę
potem dwie ,trzy itd ..

user image

0

oczywiscie n! liczymy tak:
\operatorname{silnia}(n)=\int_0<sup>\infty\frac{t</sup>n}{e^t}dt

0

Dokładniejszy wzór :

user image

po podstawieniu wzoru i rozwiązaniu w skrócie :
user image

0

@up i @(@up), oj brzydko (ale dowcipnie) się bawicie.

0

A no właśnie, zajmujemy się tu programowaniem, trzeba by dać jakiś kawałek kodu

int Factorial(int n) {
    int s[n+1];
    s[0] = 1;
    for (int m = 1; m <= n; m++)  {
        s[m] = 0;
        for (int k = m; k >= 1; k--) 
            for (int i = 1; i <= k; i++)
                s[i] += s[i - 1];
    }
    return s[n];
}
0

Brzydal, nie jaśniej tak (dokładnie to samo co wyżej)?

factorial n = (1 : scanl1 (*) [1..]) !! n

albo krócej:

factorial = ((1 : scanl1 (*) [1..]) !!)
0
mgr.Dobrowolski napisał(a)

A no właśnie, zajmujemy się tu programowaniem, trzeba by dać jakiś kawałek kodu

Niezłe, ja może ulepszę nieco koncepcję - obiecuje, że będzie dużo elegantsze.

//implementation dependent shit
typedef int Peano;
const Peano PEANO_ZERO = 0;

Peano Successor(Peano a){
  return a+1;
}

Peano Predecessor(Peano a){
  return a-1;
}
//end

Peano PeanoSum(Peano a, Peano b){
  if(b==0)
    return a;
  else return Successor(PeanoSum(a, Predecessor(b)));
}

Peano PeanoMultiply(Peano a, Peano b){
  if(b==0)
    return 0;
  else return PeanoSum(PeanoMultiply(a, Predecessor(b)), a);
}

i skoro mamy solidne i wydajne podstawy matematyczne, możemy jechać dalej z algorytmem

Peano Factorial(Peano n){
  Peano s[n+1];
  s[0] = Successor(PEANO_ZERO);
  for (int m = 1; m <= n; m++)  {
      s[m] = 0;
      for (int k = m; k >= 1; k--) 
          for (int i = 1; i <= k; i++)
              s[i] = PeanoSum(s[i], [i - 1]);
  }
  return s[n];
}

możemy też napisać piękniejszą wersję, która w pełni wykorzystuje elegancki mechanizm, jakim jest STOS:

Peano Factorial2(Peano n){
  if(n == (Peano) 0)
    return 1;
  else
    return PeanoMultiply(n, Factorial2(Predecessor(n)));
}

da się też uniknąć nieeleganckiego rozwiązania, jakim jest niebędąca zawsze częścią standardu funkcja Predecessor - wystarczy skorzystać z AKUMULATORA - niektórzy w tym przypadku stosują pętlę, ale to błąd!

Peano Factorial3(Peano n, Peano acc = (Peano) 1){
  if(acc==n)
    return acc;
  else return PeanoMultiply(acc, Factorial3(n, Successor(acc)));
}

myślę, że ten kod rozjaśni całą sytuację. nie sprawdzałem, może nie działać, ale to tylko prezentacja idei.

0

Mały OT, jakimi znacznikami trzeba "otoczyć" wzory pisane w TeX-u?
(< code=tex > ... </tex> (bez spacji) nie działa).

0

Zacytuj któryś post zawierający formułę.

0

Nic nie daje, kopiuje się tylko formuła, a otaczające znaczniki nie.
Już wiem, pisałem < code=tex >, zamiast < tex >.

0

tex - mi sie kopiuja

0

@asdf, różnimy sie rozumieniem słowa "zacytuj", wg mnie zacytuj = skopiuj wzór i obuduj znacznikami < quote >, wg Ciebie zacytuj = umieść odsyłacz.

0

Kliknij w ten link człowieku... zacytuj == kliknij taki przycisk o mało wymownej nazwie 'cytuj'.

0

Dzięki za radę, kliknąłem juz dawno, jeszcze dawniej napisałem że już znam odpowiedź. Dla mnie słowo quote jest równie wymowne jak zacytuj.

1 użytkowników online, w tym zalogowanych: 0, gości: 1