Menu

Jak to jest?

Ile jest liczb pięciocyfrowych w których zapisie występują dokładnie dwie cyfry, obie różne od zera

Komentarze:

  • dpc
  • 14 marca 2007 , 00:29:59

To pięciocyfrowych czy takich w których występują dokładnie dwie cyfry (dwucyfrowych). O ile mowa o tych samych układach pozycyjnych to coś tu nie gra.

  • esdoka
  • 14 marca 2007 , 00:32:00

Czemu ma nie grać? Zadanie z kombinatoryki – tzn ja to rozumuję tak, że chodzi o np. 57575, 23223 itd…

  • dpc
  • 14 marca 2007 , 00:33:08

Aaaa. Tom nie zrozumiał.

  • Barry
  • 14 marca 2007 , 00:45:02

5*9*8+10*9*8, chyba

  • esdoka
  • 14 marca 2007 , 00:48:17

ok. 9 i 8 wiem czemu, ale 5 i 10 ? Tzn gdybyś mi po prostu opisał swój tok myślenia byłbym wdzięczny…

  • ucho
  • 14 marca 2007 , 05:26:43

IMHO można to rozbić na kroki, czyli najpierw wybieramy parę liczb ze z 9 elementowego zbioru (8*9), potem dla każdej z pozycji możemy użyć 1 lub drugiej liczby z pary, czyli 2^5, co z drugiej strony oznacza ze pare(x,y) oraz(y,x) mamy liczyc tylko raz, koncowy wynik to 9*8/2*32=1152

  • ucho
  • 14 marca 2007 , 05:40:27

Autopoprawka, bo poprzednie było zbyt skomplikowane i błędne ;)
9*8*2*2*2=576
Ale chwila, to nie uwzględnia mozliwości ze pierwsza i druga cyfra jest taka sama _. to jeszcze inaczej :)
Skoro muszą być użyte 2 różne cyfry, to wchodzą w 2 gre możliwości 4+1 i 2+3, pierwsza to 5 układow, druga 5*4 możliwosci, razem 25 na parę liczb, co z zastrzeżeniem jak przy metodzie z poprzednjiego komentarza daje 9*8/2*25=900. Ciekawe jaka liczba jest poprawnym wynikiem ;)
W sumie chyba w tej osotatniej metodzie liczby w parze są rozróżnialne, wiec byłoby 9*8*25->1800 xD. Miłego wybierania

  • esdoka
  • 14 marca 2007 , 07:43:35

Hmm.. Ma wyjść 1080. Jednak udało mi się do tego jakoś dojść. Z małą pomocą forum.matematyka.org – tam mi napisali tylko wynik, ale bez żadnych komentarzy. Głowiłem się czemu tak a nie inaczej i doszedłem do tego. Najpierw wybieramy 2 z 9 liczb. Wiemy, że liczba docelowa składająca się z liczb (x,y) może mieć postać, że x stoi na 1 do 4 miesjc, a więc (9 po 2)[(5 po 1)+(5 po 2)+(5 po 3)+ (5 po 4)]=1080

  • i0
  • 14 marca 2007 , 14:42:20

I prawidłowo. A to rozwiązanie (kilka postaci) pod interpreterem interaktywnym Pythona (kropki zamiast spacji, bo nie wiem czy masz formatowanie włącozne, a poprawianie później to ból pleców):

[cut]

>>> counter = 0
>>> for a in xrange(1,10):
....for b in xrange(1,10):
.....for c in xrange(1,10):
......for d in xrange(1,10):
.......for e in xrange(1,10):
........if len(set([a,b,c,d,e])) == 2: counter += 1
...
>>> counter
1080
>>> ok = lambda i: len(set(str(i)))==2 and ‘0’ not in str(i)
>>> len(filter(ok, xrange(10000, 100000)))
1080
>>> counter = 0
>>> for i in xrange(10000, 100000):
....if ok(i): counter += 1
...
>>> counter
1080
>>> len([i for i in xrange(10000,100000) if ok(i)])
1080
>>>

[cut]

Bierze kolejne liczby pięciocyfrowe, zmienia na łańcuch znaków, robi z nich zbiór (tylko unikalne elementy), zlicza ilość elementów i sprawdza obecność zera. ;-)

  • per-aspera-ad-astra
  • 14 marca 2007 , 17:44:16

Dżis… Ja chyba nigdy tego nie pojmę... Jak dobrze, że zawsze mogę pouczyć się historii… ;)

Dodaj komentarz: