PHP na SQL: Hesabu au Swala Umbali wa Mzunguko Mkubwa Kati ya Sehemu za Latitudo na Longitude na Mfumo wa Haversine

Mfumo wa Haversine - Piga Umbali wa Mzunguko Mkubwa na PHP au MySQL

Mwezi huu nimekuwa nikipanga programu kidogo katika PHP na MySQL kwa heshima ya GIS. Kuchunguza karibu na wavu, kwa kweli nilikuwa na wakati mgumu kupata baadhi ya Mahesabu ya kijiografia kupata umbali kati ya maeneo mawili kwa hivyo nilitaka kushiriki hapa.

Ramani ya Ndege Ulaya na Mzunguko Mkubwa

Njia rahisi ya kuhesabu umbali kati ya nukta mbili ni kutumia fomula ya Pythagorean kuhesabu hypotenuse ya pembetatu (A² + B² = C²). Hii inajulikana kama Umbali wa Euclidean.

Huo ni mwanzo wa kupendeza lakini hautumiki na Jiografia kwani umbali kati ya mistari ya latitudo na longitudo ni sio umbali sawa kando. Unapokaribia ikweta, mistari ya latitudo inazidi kutengana. Ikiwa unatumia aina fulani ya equation rahisi ya pembetatu, inaweza kupima umbali kwa usahihi katika eneo moja na vibaya vibaya kwa nyingine, kwa sababu ya kupindika kwa Dunia.

Umbali Mzunguko Mkubwa

Njia ambazo zinasafiri umbali mrefu kuzunguka Dunia zinajulikana kama Umbali Mzunguko Mkubwa. Hiyo ni… umbali mfupi kati ya alama mbili kwenye duara ni tofauti na alama kwenye ramani tambarare. Unganisha hiyo na ukweli kwamba latitudo na mistari ya longitudo sio sawa ... na unayo hesabu ngumu.

Hapa kuna maelezo mazuri ya video ya jinsi Miduara Mikuu inavyofanya kazi.

Mfumo wa Haversine

Umbali wa kutumia ukingo wa Dunia umejumuishwa katika Mchanganyiko wa Haversine, ambayo hutumia trigonometry kuruhusu kupindika kwa dunia. Unapopata umbali kati ya maeneo 2 duniani (kama kunguru anaruka), laini moja kwa moja ni arc.

Hii inatumika katika ndege ya angani - umewahi kuangalia ramani halisi ya ndege na kugundua kuwa zimepigwa? Hiyo ni kwa sababu ni fupi kuruka kwa upinde kati ya alama mbili kuliko moja kwa moja kwa eneo.

PHP: Kokotoa Umbali Kati ya Pointi 2 za Latitudo na Longitude

Kwa vyovyote, hii hapa fomula ya PHP ya kuhesabu umbali kati ya nukta mbili (pamoja na ubadilishaji wa Mile dhidi ya Kilometa) iliyozungukwa na sehemu mbili za desimali.

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'miles') {
  $theta = $longitude1 - $longitude2; 
  $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); 
  $distance = acos($distance); 
  $distance = rad2deg($distance); 
  $distance = $distance * 60 * 1.1515; 
  switch($unit) { 
    case 'miles': 
      break; 
    case 'kilometers' : 
      $distance = $distance * 1.609344; 
  } 
  return (round($distance,2)); 
}

SQL: Inarudisha Rekodi Zote Ndani ya Masafa Kwa Kuhesabu Umbali Katika Maili Kutumia Latitudo na Longitude

Inawezekana pia kutumia SQL kufanya hesabu kupata rekodi zote katika umbali maalum. Katika mfano huu, nitauliza MyTable katika MySQL kupata rekodi zote ambazo ni chini ya au sawa na umbali tofauti wa $ (katika Miles) kwa eneo langu kwa latitudo la $ na longitudo ya $:

Hoja ya kupata rekodi zote ndani ya maalum umbali kwa kuhesabu umbali katika maili kati ya alama mbili za latitudo na longitudo ni:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) as distance FROM `table` WHERE distance <= ".$distance."

Utahitaji kubadilisha hii kukufaa:

  • $ longitudo - hii ni tofauti ya PHP ambapo ninapita urefu wa uhakika.
  • Latitudo - hii ni tofauti ya PHP ambapo ninapita urefu wa uhakika.
  • $ umbali - huu ndio umbali ambao ungependa kupata rekodi zote kidogo au sawa.
  • meza - hii ndio meza… utahitaji kuibadilisha na jina la meza yako.
  • latitude - hii ndio uwanja wa latitudo yako.
  • longitudo - hii ndio uwanja wa longitudo.

SQL: Inarudisha Rekodi Zote Ndani ya Umbali Kwa Kuhesabu Umbali Katika Kilometa Kutumia Latitudo na Longitude

Na hapa kuna swala la SQL ukitumia kilomita kwenye MySQL:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM `table` WHERE distance <= ".$distance."

Utahitaji kubadilisha hii kukufaa:

  • $ longitudo - hii ni tofauti ya PHP ambapo ninapita urefu wa uhakika.
  • Latitudo - hii ni tofauti ya PHP ambapo ninapita urefu wa uhakika.
  • $ umbali - huu ndio umbali ambao ungependa kupata rekodi zote kidogo au sawa.
  • meza - hii ndio meza… utahitaji kuibadilisha na jina la meza yako.
  • latitude - hii ndio uwanja wa latitudo yako.
  • longitudo - hii ndio uwanja wa longitudo.

Nilitumia nambari hii kwenye jukwaa la ramani ya biashara ambayo tulitumia kwa duka la rejareja na zaidi ya maeneo 1,000 kote Amerika Kaskazini na ilifanya kazi vizuri.

77 Maoni

  1. 1

    Asante sana kwa kushiriki. Hii ilikuwa kazi rahisi ya kunakili na kubandika na inafanya kazi nzuri. Umeniokoa wakati mwingi.
    FYI kwa mtu yeyote anayesafirisha kwenda C:
    deg2rad mara mbili (deg mbili) {kurudi deg * (3.14159265358979323846 / 180.0); }

  2. 2

    Sehemu nzuri sana ya kuchapisha - ilifanya kazi nzuri sana - ilibidi nibadilishe tu jina la meza iliyoshikilia lat-long. Inafanya kazi haraka sana .. Nina idadi ndogo ya muda mrefu (<400) lakini nadhani hii ingeongezeka vizuri. Tovuti nzuri pia - nimeiongeza tu kwenye akaunti yangu ya del.icio.us na nitaangalia mara kwa mara.

  3. 4
  4. 5
  5. 8

    nadhani SQL yako inahitaji taarifa ya kuwa nayo.
    badala ya umbali WA WAPI <= $ umbali ambao unaweza kuhitaji
    tumia HAVING umbali <= $ umbali

    vinginevyo asante kwa kuniokoa rundo la wakati na nguvu.

  6. 10
  7. 11
  8. 12

    Asante sana kwa kushiriki nambari hii. Iliniokoa wakati mwingi wa maendeleo. Pia, asante kwa wasomaji wako kwa kuonyesha kuwa taarifa ya HAVING ni muhimu kwa MySQL 5.x. Inasaidia sana.

  9. 14
  10. 15

    Hello,

    Swali lingine. Je! Kuna fomula ya nyuzi za NMEA kama hii hapa chini?

    1342.7500, N, 10052.2287, E

    $GPRMC,032731.000,A,1342.7500,N,10052.2287,E,0.40,106.01,101106,,*0B

    Shukrani,
    Harry

  11. 16

    Niligundua pia kuwa WAPI haikunifanyia kazi. Ilibadilishwa kuwa HAVING na kila kitu hufanya kazi vizuri. Mwanzoni sikusoma maoni na kuiandika tena kwa kutumia chaguo la kiota. Wote watafanya kazi vizuri tu.

  12. 17
  13. 18

    Inasaidia sana, asante sana! Nilikuwa na shida na "KUWA" mpya, badala ya "WAPI", lakini mara tu nilisoma maoni hapa (baada ya karibu nusu saa ya kusaga meno yangu kwa kuchanganyikiwa = P), niliifanya ifanye kazi vizuri. Asante ^ _ ^

  14. 19
  15. 20

    Kumbuka kwamba taarifa iliyochaguliwa kama hiyo itakuwa kali sana kwa hesabu na kwa hivyo polepole. Ikiwa una maswali mengi hayo, inaweza kuweka vitu chini haraka sana.

    Njia ndogo sana ni kutumia chaguo la kwanza (ghafi) kutumia eneo la SQUARE linalofafanuliwa na umbali uliohesabiwa yaani "chagua * kutoka kwa jina la meza ambapo latitudo kati ya lat1 na lat2 na longitudo kati ya lon1 na lon2". lat1 = uelekezaji - latdiff, lat2 = hali ya kulenga + latdiff, sawa na lon. latdiff ~ = umbali / 111 (kwa km), au umbali / 69 kwa maili tangu digrii 1 ya latitudo ni ~ km 111 (tofauti kidogo kwani dunia ni mviringo kidogo, lakini inatosha kwa kusudi hili). londiff = umbali / (abs (cos (deg2rad (latitude)) * 111)) - au 69 kwa maili (kwa kweli unaweza kuchukua mraba mkubwa kidogo ili hesabu ya tofauti). Kisha chukua matokeo ya hiyo na uilishe kwenye chaguo la radial. Usisahau tu akaunti ya kuratibu nje ya mipaka - yaani anuwai ya longitudo inayokubalika ni -180 hadi +180 na anuwai ya latitudo inayokubalika ni -90 hadi + 90 - ikiwa latdiff yako au londiff atatembea nje ya masafa haya . Kumbuka kuwa katika hali nyingi hii haiwezi kutumika kwani inaathiri tu mahesabu juu ya mstari kupitia bahari ya pacific kutoka pole hadi pole, ingawa inaingiliana na sehemu ya chukotka na sehemu ya alaska.

    Tunachokamilisha kwa hii ni kupunguzwa kwa idadi kubwa ya alama ambazo unafanya hesabu hii. Ikiwa una alama milioni ulimwenguni kwenye hifadhidata iliyosambazwa sawasawa na unataka kutafuta ndani ya kilomita 100, basi utaftaji wako wa kwanza (haraka) ni wa eneo la 10000 sq km na labda itatoa matokeo kama 20 (kulingana na usambazaji hata kwa eneo la karibu kilomita za mraba 500M), ambayo inamaanisha kuwa unatumia hesabu tata ya umbali mara 20 kwa swali hili badala ya mara milioni.

    • 21
      • 22

        Ushauri mzuri! Kwa kweli nilifanya kazi na msanidi programu ambaye aliandika kazi iliyovuta mraba wa ndani na kisha kazi ya kurudia ambayo ilifanya 'mraba' kuzunguka eneo kujumuisha na kuwatenga vidokezo vilivyobaki. Matokeo yalikuwa matokeo ya haraka sana - angeweza kutathmini mamilioni ya alama kwenye mikrofoni ndogo.

        Njia yangu hapo juu ni dhahiri lakini ni nzuri. Asante tena!

        • 23

          Doug,

          Nimekuwa nikijaribu kutumia mysql na php kutathmini ikiwa nukta ndefu iko ndani ya poligoni. Je! Unajua ikiwa rafiki yako wa msanidi programu alichapisha mifano yoyote ya jinsi ya kufanikisha kazi hii. Au unajua mifano yoyote mizuri. Asante mapema.

  16. 24

    Halo kila mtu hii ni taarifa yangu ya mtihani wa SQL:

    SELECT DISTINCT area_id, (
    (
    (
    acos( sin( ( 13.65 * pi( ) /180 ) ) * sin( (
    `lat_dec` * pi( ) /180 ) ) + cos( ( 13.65 * pi( ) /180 ) ) * cos( (
    `lat_dec` * pi( ) /180 )
    ) * cos( (
    ( 51.02 - `lon_dec` ) * pi( ) /180 )
    )
    )
    ) *180 / pi( )
    ) *60 * 1.1515 * 1.609344
    ) AS distance
    FROM `post_codes` WHERE distance <= 50

    na Mysql ananiambia umbali huo, haipo kama safu, naweza kutumia utaratibu kwa, naweza kuifanya bila WAPI, na inafanya kazi, lakini sio nayo…

  17. 26

    Hii ni nzuri, hata hivyo ni kama vile ndege huruka. Itakuwa nzuri kujaribu na kuingiza ramani za google kwa hii kwa njia fulani (labda kutumia barabara n.k.) Kutoa wazo kwa kutumia njia tofauti ya usafirishaji. Bado bado sijafanya kazi ya kuiga nyongeza katika PHP ambayo itaweza kutoa suluhisho bora kwa shida ya muuzaji anayesafiri. Lakini nadhani nitaweza kutumia tena nambari yako ya nambari kufanya hivyo.

  18. 27
  19. 28

    Nakala nzuri! Nilipata nakala nyingi zinazoelezea jinsi ya kuhesabu umbali kati ya alama mbili lakini nilikuwa nikitafuta kijisehemu cha SQL.

  20. 29
  21. 30
  22. 31
  23. 32
  24. 36

    Siku 2 za utafiti mwishowe upate ukurasa huu ambao unatatua shida yangu. Inaonekana ni bora niondolee WolframAlpha yangu na nipigie hesabu zangu. Mabadiliko kutoka KWA WAPI kwenda KUWA na hati yangu katika hali ya kufanya kazi. ASANTE

  25. 37
  26. 39

    Natamani hii ilikuwa ukurasa wa kwanza ningepata kwenye hii. Baada ya kujaribu amri nyingi tofauti hii ndiyo pekee iliyofanya kazi vizuri, na ikiwa na mabadiliko machache yanayohitajika kutoshea hifadhidata yangu mwenyewe.
    Shukrani sana!

  27. 40

    Natamani hii ilikuwa ukurasa wa kwanza ningepata kwenye hii. Baada ya kujaribu amri nyingi tofauti hii ndiyo pekee iliyofanya kazi vizuri, na ikiwa na mabadiliko machache yanayohitajika kutoshea hifadhidata yangu mwenyewe.
    Shukrani sana!

  28. 41
  29. 42
  30. 43
  31. 45
  32. 46
  33. 47
  34. 49
  35. 50
  36. 52
  37. 53
  38. 55
  39. 56
  40. 58

    asante kwa kuchapisha nakala hii muhimu,  
    lakini kwa sababu fulani ningependa kuuliza
    jinsi ya kupata umbali kati ya kozi ndani ya mysql db na coord zilizoingizwa kwa php na mtumiaji?
    kwa kuelezea wazi zaidi:
    1. mtumiaji lazima aingize [id] kwa kuchagua data maalum kutoka kwa db na coord za mtumiaji mwenyewe
    Faili ya php hupata data lengwa (coord) kwa kutumia [id] na kisha uhesabu umbali kati ya mtumiaji na eneo lengwa

    au unaweza tu kupata umbali kutoka kwa nambari hapa chini?

    $ qry = "CHAGUA *, (((acos (sin ((". $ latitude. "* pi () / 180)) * dhambi ((` Latitude` * pi () / 180)) + cos ((“. Latitudo la $. ”* pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((“. $ longitude.” - `Longitude`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) kama umbali KUTOKA `MyTable` WHERE umbali> =". $ Umbali. " >>>> Je! ninaweza "kuchukua" umbali kutoka hapa?
    Asante tena,
    Timmy S

  41. 60

    sawa, kila kitu ambacho nimejaribu hakifanyi kazi. Namaanisha, kile ninacho hufanya kazi, lakini umbali uko mbali.

    Je! Kuna mtu yeyote anayeweza kuona ni nini kibaya na nambari hii?

    ikiwa (iset ($ _ POST ['imewasilishwa'])) {$ z = $ _POST ['zipcode']; $ r = $ _POST ['radius']; nukuu "Matokeo ya". $ z; $ sql = mysql_query ("CHAGUA TOFAUTI m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. jiji, z1.state KUTOKA mrk m, zip z1, zip z2 WAPI m.zipcode = z1.zipcode NA z2.zipcode = $ z NA (3963 * acos (truncate (sin (z2.lat / 57.2958) * sin (m. y1 / 57.2958) + cos (z2.lat / 57.2958) * cos (m.y1 / 57.2958) * cos (m.x1 / 57.2958 - z2.lon / 57.2958), 8))) <= $ r ") au kufa (mysql_error ()); wakati ($ row = mysql_fetch_array ($ sql)) {$ store1 = $ row ['MktName']. "”; Duka la $ = $ row ['LocAddSt']. ””; $ store. = $ row ['LocAddCity']. ”,". $ row ['LocAddState']. " ". $ Safu ['zipcode']; $ latitude1 = $ safu ['lat']; $ longitude1 = $ safu ['lon']; Latitudo2 = safu ya $ ['y1']; $ longitudo2 = safu ya $ ['x1']; $ jiji = $ safu ['jiji']; $ state = $ safu ['state']; $ dis = kupata mpya ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi'); // $ dis = umbali ($ lat1, $ lon1, $ lat2, $ lon2); $ verified = $ safu ['verified']; ikiwa ($ verified == '1') {echo "”; echo "". $ duka. ""; echo $ dis. "Maili (maili)"; echo ""; } mwingine {echo "". $ store. ""; echo $ dis. "Maili (maili)"; echo ""; }}}

    nambari zangu za kazi.php
    fanya kazi mpya ($ latitude1, $ longitude1, $ latitude2, $ longitude2, $ unit = 'Mi') {$ theta = $ longitude1 - $ longitude2; $ umbali = (dhambi (deg2rad ($ latitude1)) * dhambi (deg2rad ($ latitude2))) + (cos (deg2rad ($ latitude1)) * cos (deg2rad ($ latitude2)) * cos (deg2rad ($ theta)) ); $ umbali = acos ($ umbali); $ umbali = rad2deg ($ umbali); $ umbali = $ umbali * 60 * 1.1515; kubadili ($ unit) {kesi 'Mi': kuvunja; kesi 'Km': $ umbali = $ umbali * 1.609344; } kurudi (pande zote ($ umbali, 2)); }

    Asante mapema

  42. 61
  43. 62

    Hey Douglas, nakala nzuri. Nimepata ufafanuzi wako wa dhana za kijiografia na nambari hiyo inavutia sana. Maoni yangu tu yatakuwa nafasi na kuweka ndani nambari ya kuonyesha (kama Stackoverflow, kwa mfano). Ninaelewa kuwa unataka kuhifadhi nafasi, lakini nafasi ya kawaida ya kuweka nambari inaweza kufanya iwe rahisi kwangu, kama programu, kusoma na kugawanya. Kwa vyovyote vile, hilo ni jambo dogo. Endelea na kazi kubwa.

  44. 64
  45. 65
  46. 66
  47. 67
  48. 68
  49. 69
  50. 70

    inaonekana haraka (mysql 5.9) kutumia fomula mara mbili katika chagua na wapi:
    $ formula = “(((acos (sin ((“. $ latitude. ”* pi () / 180)) * dhambi ((` Latitude` * pi () / 180)) + cos ((“. $ latitude. ”* Pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((". $ Longitude." - `Longitude`) * pi () / 180))))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) ”;
    $ sql = 'CHAGUA *,'. $ formula. ' kama umbali KUTOKA Jedwali WAPI '.. fomula ya $.' <= '. $ umbali;

  51. 71
  52. 72

    Asante sana kwa kunyoa nakala hii.inasaidia sana.
    PHP iliundwa mwanzoni kama jukwaa rahisi la maandishi linaloitwa "Ukurasa wa Kibinafsi wa Kibinafsi". Siku hizi PHP (kifupi cha Preprocessor Hypertext) ni njia mbadala ya teknolojia ya Microsoft Active Server Kurasa (ASP).

    PHP ni lugha wazi ya upande wa seva ambayo hutumiwa kuunda kurasa za wavuti zenye nguvu. Inaweza kupachikwa kwenye HTML. PHP kawaida hutumiwa kwa kushirikiana na hifadhidata ya MySQL kwenye seva za wavuti za Linux / UNIX. Labda ndiyo lugha maarufu zaidi ya maandishi.

  53. 73

    Niligundua suluhisho hapo juu haifanyi kazi vizuri.
    Ninahitaji kubadilisha kuwa:

    $ qqq = "CHAGUA *, (((acos (sin ((". $ latitude. "* pi () / 180)) * dhambi ((` latt` * pi () / 180)) + cos ((". Latitudo la $. "* pi () / 180)) * cos ((` latt` * pi () / 180)) * cos (((". $ longitude." - `longt`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515) kama umbali KUTOKA `sajili" ";

  54. 75
  55. 76

    Halo, tafadhali nitahitaji msaada wako juu ya hili.

    Nilifanya ombi kwa seva yangu ya wavuti http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = latitudo ya dola
    -2.23389 = urefu wa $
    na 20 = umbali ninaotaka kupata

    Walakini ikitumia fomula, inachukua safu zote kwenye db yangu

    $ results = DB :: chagua (DB :: mbichi ("CHAGUA *, (((acos (dhambi ((". $ latitude. "* pi () / 180)) * dhambi ((lat * pi () / 180) )) + cos ((". $ latitude." * pi () / 180)) * cos ((lat * pi () / 180)) * cos ((((". $ longitude." - lng) * pi ( ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) kama umbali KUTOKA kwa alama KUWA na umbali> = ". $ Umbali));

    [{"Id": 1, "jina": "Frankie Johnnie & Luigo Too", "anwani": "939 W El Camino Real, Mountain View, CA", "lat": 37.386337280273, "lng": - 122.08582305908, "Umbali": 16079.294719663}, {"id": 2, "jina": "Pwani ya Pwani ya Amici ya Mashariki", "anwani": "790 Castro St, Mountain View, CA", "lat": 37.387138366699, "lng": -122.08323669434, "umbali": 16079.175940152}, {"id": 3, "name": "Kapp's Pizza Bar & Grill", "anuani": "191 Castro St, Mountain View, CA", "lat": 37.393886566162, "Lng": - 122.07891845703, "umbali": 16078.381373826}, {"id": 4, "name": "Round Table Pizza: Mountain View", "address": "570 N Shoreline Blvd, Mountain View, CA", "Lat": 37.402652740479, "lng": - 122.07935333252, "umbali": 16077.420540582}, {"id": 5, "name": "Tony & Alba's Pizza & Pasta", "anuani": ”619 Escuela Ave, Mountain Tazama, CA "," lat ": 37.394012451172," lng ": - 122.09552764893," umbali ": 16078.563225154}, {" id ": 6," jina ":" Pizza ya Wood-Fired Oregano "," anwani ":” 4546 El Camino Real, Los Altos, CA "," lat ": 37.401725769043," lng ": - 122.11464691162," umbali ": 16077.937560795}, {" id ”: 7," jina ":" Baa na grills "," anwani ":" 24 Whiteley Street, Manchester "," lat ": 53.485118865967," lng ": - 2.1828699111938," umbali ": 8038.7620112314}]

    Nataka kurudisha safu na maili 20 lakini inaleta safu zote. Tafadhali ninakosea nini

  56. 77

    Ninatafuta swala kama hilo lakini nimeongeza kidogo - kwa kifupi hii ni kupanga kuratibu zote ndani ya maili 2 ya kila kuratibu na kisha kuhesabu kuratibu ngapi katika kila kikundi na kutoa kundi moja tu ambalo lina uratibu zaidi - hata ikiwa una zaidi ya kikundi kimoja kati ya vikundi ambavyo vina idadi kubwa ya kuratibu - hutoa tu kikundi cha nasibu kutoka kwa vikundi vilivyo na idadi kubwa sawa -

Unafikiri?

Tovuti hii inatumia Akismet kupunguza spam. Jifunze jinsi maoni yako yanasindika.