Cum pot obține numărul total de perechi unice ale unui set din baza de date? [închis] (Programare, Bază De Date, Math)

Kirk Ouimet a intrebat.

4 articole:

A
B
C
D

6 perechi unice posibile:

AB
AC
AD
BC
BD
CD

Ce se întâmplă dacă am 100 de elemente inițiale? Câte perechi unice există? Există o formulă în care să pot introduce acest lucru?

Comentarii

  • Votez pentru a închide această întrebare ca fiind off-topic, deoarece nu pare a fi despre programare, ci mai degrabă despre matematică în general. –  > Por TylerH.
  • (n(n-1))/2 unde n este numărul de elemente, de exemplu, în cazul tău 4, deci (n(n-1))/2 = 6 –  > Por seralouk.
4 răspunsuri
audiomason

TLDR; Formula este n(n-1)/2 unde n este numărul de elemente din set.

Explicație:

Pentru a afla numărul de perechi unice dintr-un set, unde perechile sunt supuse la proprietatea comutativă (AB = BA), , se poate calcula suma a 1 + 2 + ... + (n-1) unde n este numărul de elemente din set.

Raționamentul este următorul: să zicem că aveți 4 elemente:

A
B
C
D

Numărul de elemente care pot fi împerecheate cu A este 3, sau n-1:

AB
AC
AD

Rezultă că numărul de elemente care pot fi împerecheate cu B este n-2 (deoarece B a fost deja împerecheat cu A):

BC
BD

și așa mai departe…

(n-1) + (n-2) + ... + (n-(n-1))

care este același lucru cu

1 + 2 + ... + (n-1)

sau

n(n-1)/2

Comentarii

  • Nu-i așa că este același lucru cu (n-1)! –  > Por Baodad.
  • Nu este același lucru cu (n-1)! Care escaladează mult mai repede. Totuși, este similar cu un număr triunghiular, a cărui formulă este (n+1)n/2 (seria este decalată pozițional cu unu). (n-1)n/2 pentru n=1,2,3,… = 0, 1, 3, 6, 10, 15, 21, 28, 36, … –  > Por Marques Johansson.
  • (n (n+1) / 2) - n = ((n^2 + n) /2) - n = (n^2 + n - 2n) / 2 = (n^2 - n) / 2 = n(n - 1) / 2 –  > Por Kok How Teh.
Mike Christensen

Ceea ce căutați este n alege k. În principiu:

Pentru fiecare pereche de 100 de articole, veți avea 4.950 combinații – cu condiția ca ordinea să nu conteze (AB și BA sunt considerate o singură combinație) și să nu doriți să repetați (AA nu este o pereche valabilă).

Comentarii

  • Ajută-mă că sunt prost – poți să arunci 100 de elemente în ecuația asta ca să mă înveți -.  > Por Kirk Ouimet.
  • 17

  • n ar fi numărul de elemente (100 în cazul tău), iar k ar fi numărul de elemente din fiecare set (2 în cazul tău). –  > Por Mike Christensen.
  • Minunat, mulțumesc Mike! –  > Por Kirk Ouimet.
  • Nicio problemă. Cred că majoritatea limbajelor de programare moderne au combinație funcții de combinare încorporate. De asemenea, puteți utiliza funcția =COMBIN(100,2) dacă aveți Excel la îndemână. –  > Por Mike Christensen.
  • Iată una online –  > Por Conrad Frix.
Joni

Iată cum puteți aborda aceste probleme în general pe cont propriu:

Primul din pereche poate fi ales în N (=100) moduri. Nu vrei să alegi din nou acest element, așa că al doilea din pereche poate fi ales în N-1 (=99) moduri. În total, puteți alege 2 elemente din N în N(N-1) (= 100*99=9900) moduri diferite.

Dar stați puțin, în acest fel se numără și ordonări diferite: AB și BA sunt ambele numărate. Deoarece fiecare pereche este numărată de două ori, trebuie să împărțiți N(N-1) la doi (numărul de moduri în care puteți ordona o listă de două elemente). Numărul de subansambluri de două pe care le puteți face cu un set de N este atunci N(N-1)/2 (= 9900/2 = 4950).

atomsfat

Am rezolvat această problemă algoritmul și m-am blocat la partea cu perechile.

Această explicație m-a ajutat foarte mult https://betterexplained.com/articles/techniques-for-adding-the-numbers-1-to-100/

Deci, pentru a calcula suma unor serii de numere:

n(n+1)/2

Dar trebuie să calculezi asta

1 + 2 + ... + (n-1)

Deci, pentru a obține acest lucru, puteți folosi

n(n+1)/2 - n

care este egal cu

n(n-1)/2

Comentarii

  • a venit aici din aceeași problemă de algoritm! –  > Por Eran Medan.