Ruka hadi maudhui

random-location-generator

Zalia koordineti za kijiografia za haraka sasa. Kizalisha eneo nasibu bure huzalisha thamani halali za latitudi na longitude pamoja na ramani ya miingiliano. Kamili kwa jaribio ya programu.

Jenereta ya Mahali Nasibu

Kupakia kasha hesabu...
📚

Nyaraka

Kizalisha maeneo nasibu ni zana inayozalisha jozi nasibu ya viwianishi vya kijiografia: latitudo na longitudo. Kila matokeo huashiria nukta inayoweza kuwa mahali popote kwenye uso wa Dunia, kutoka bahari ya wazi hadi mitaa ya jiji na vilele vya milima.

Kile zana inachozalisha

Kila kubofya huzalisha thamani moja ya latitudo, kati ya -90° na 90°, na thamani moja ya longitudo, kati ya -180° na 180°. Zana huonyesha nambari zote mbili kwa digrii za desimali, kama vile 60.0000° K, 90.0000° G, na huweka alama ya nukta hiyo kwenye ramani rahisi ya dunia. Latitudo hasi humaanisha kuwa nukta iko kusini mwa ikweta; longitudo hasi humaanisha kuwa iko magharibi mwa Meridiani Kuu, mstari unaopita Greenwich, Uingereza.

Jinsi ya kutumia kizalisha maeneo nasibu

  1. Bonyeza kitufe cha Tengeneza.
  2. Soma viwianishi vinavyoonyeshwa chini ya kitufe, pamoja na mielekeo ya K/K na M/G.
  3. Angalia alama kwenye ramani ya dunia ili kuona kwa makadirio mahali nukta ilipo.
  4. Bonyeza Nakili ili kunakili viwianishi kwa matumizi mahali pengine.
  5. Bonyeza Tengeneza tena ili kupata nukta mpya. Hakuna kikomo cha mara ngapi jambo hili linaweza kufanywa.
  6. Bonyeza Weka upya ili kufuta matokeo na kuanza tena.

Jinsi viwianishi vinavyokokotolewa (formula)

Longitudo ni rahisi: huchaguliwa kwa usambazaji sare, yaani kila thamani kati ya -180° na 180° ina uwezekano sawa. Formula ni:

λ=v×360−180\lambda = v \times 360 - 180

ambapo λ ni longitudo kwa digrii na v ni nambari nasibu kati ya 0 na 1.

Latitudo hufanya kazi kwa njia tofauti, na hili ndilo jambo ambalo mara nyingi watu hukosea. Formula inayotumika ni:

φ=arcsin⁡(2u−1)\varphi = \arcsin(2u - 1)

ambapo φ ni latitudo, iliyobadilishwa kutoka radiani hadi digrii, u ni nambari nyingine nasibu kati ya 0 na 1, na arcsin ni kitendakazi kinyume cha sine.

Kwa nini latitudo haichaguliwi kwa nambari nasibu ya kawaida

Mduara wa latitudo karibu na ncha ni mfupi. Mduara wa latitudo kwenye ikweta ni mrefu, ukizunguka sehemu kubwa ya sayari. Ikiwa latitudo ingechaguliwa kwa nambari nasibu ya kawaida kati ya -90 na 90, kila digrii ya latitudo ingepata sehemu sawa ya matokeo, ingawa miduara ya karibu na ncha inafunika sehemu ndogo zaidi ya uso wa Dunia kuliko ile ya ikweta. Hilo lingesababisha nukta nyingi mno kujikusanya karibu na ncha.

Formula ya arcsin hurekebisha hili. Husambaza nukta hivi kwamba kila kipande cha uso wa Dunia kina uwezekano sawa wa kuchaguliwa, bila kujali ukaribu wake na ncha. Wazo hili huitwa uchaguaji wa nukta kwenye tufe, na linatokana na kanuni ambayo wakati mwingine huitwa teoremu ya sanduku la kofia ya Archimedes: eneo la uso wa mkanda wa latitudo hutegemea tofauti kati ya sine za kingo zake, si tofauti ya digrii.

Mfano uliotatuliwa

Tuseme kizalisha kinachora nambari mbili nasibu: u = 0.9330127 kwa latitudo na v = 0.25 kwa longitudo.

  • latitudo = arcsin(2 × 0.9330127 − 1) = arcsin(0.8660254) = 60°
  • longitudo = 0.25 × 360 − 180 = -90°

Matokeo ni 60.0000° K, 90.0000° G, nukta iliyo karibu na Ghuba ya Hudson kaskazini mwa Kanada.

Mfano wa msimbo

Hatua hizo mbili hufanya kazi katika lugha yoyote ya programu: chora nambari mbili nasibu kati ya 0 na 1, tumia formula ya arcsin kwenye ya kwanza ili kupata latitudo, kisha panua ya pili ili kupata longitudo.

Python

1import random
2import math
3
4def generate_random_coordinates():
5    u = random.random()
6    v = random.random()
7    latitude = math.degrees(math.asin(2 * u - 1))
8    longitude = v * 360 - 180
9    return latitude, longitude
10

JavaScript

1function generateRandomCoordinates() {
2  const u = Math.random();
3  const v = Math.random();
4  const latitude = Math.asin(2 * u - 1) * (180 / Math.PI);
5  const longitude = v * 360 - 180;
6  return { latitude, longitude };
7}
8

Toleo rahisi zaidi linaloruka hatua ya arcsin na kuchagua latitudo kama random.uniform(-90, 90) ni rahisi kuandika, lakini hukusanya nukta karibu na ncha badala ya kuzisambaza kwa usawa kwenye uso wa Dunia.

Matumizi ya kawaida

Watengenezaji wa programu hutumia viwianishi nasibu kujaribu vipengele vya GPS, uchoraji wa ramani na programu zinazotegemea eneo bila kuchagua wenyewe data ya majaribio. Wabunifu wa michezo huyatumia kuweka maeneo ya kuanzia au maeneo ya kuwinda hazina. Walimu huyatumia kufanya mazoezi ya kusoma latitudo na longitudo pamoja na wanafunzi. Watafiti huyatumia kuchagua maeneo ya sampuli yasiyo na upendeleo kwa tafiti za uwanjani, kwa kuwa mbinu ya arcsin huepuka kupendelea eneo lolote la dunia.

Maswali yanayoulizwa mara kwa mara

Viwianishi viko katika muundo gani?

Digrii za desimali (DD), kama vile 40.7128° K, 74.0060° G. Huu ndio muundo unaotumiwa na huduma nyingi za ramani, zikiwemo Google Maps, na vifaa vya GPS.

Kwa nini viwianishi vingi nasibu huangukia baharini?

Maji hufunika takriban 71% ya uso wa Dunia, hivyo nukta iliyochaguliwa kwa nasibu ya kweli ina uwezekano mkubwa zaidi wa kuangukia baharini kuliko nchi kavu. Hili linatarajiwa na linathibitisha kuwa viwianishi vimesambazwa kwa usawa, si hitilafu ya zana.

Je, ninaweza kuzalisha viwianishi vya nchi au bara moja pekee?

Hapana. Zana hii huchagua nukta kutoka mahali popote duniani. Ili kuzuia matokeo yaishie katika eneo fulani, viwianishi vingehitaji kuchujwa zaidi baada ya kuzalishwa, au kungehitajika zana iliyoundwa ikiwa na mipaka ya eneo.

Viwianishi vina usahihi gani?

Kila thamani ina tarakimu 4 baada ya nukta ya desimali. Kwa latitudo, hiyo ni takriban 11 mita (36 futi) za usahihi mahali popote duniani. Kwa longitudo, tarakimu hizo 4 zinawakilisha takriban 11 mita karibu na ikweta, na umbali huo hupungua unapokaribia ncha, kwa sababu mistari ya longitudo hukaribiana zaidi huko.

Je, viwianishi vinaashiria maeneo halisi yanayoweza kuwepo?

Ndiyo. Kila matokeo ni nukta halali kihisabati kwenye uso wa Dunia, ingawa inaweza kuwa katika bahari ya wazi, kwenye barafu au mahali pengine pasipo na makazi yaliyo karibu.

Ninawezaje kubadilisha digrii za desimali kuwa digrii, dakika na sekunde (DMS)?

Tumia nambari kamili kama digrii. Zidisha sehemu ya desimali kwa 60 ili kupata dakika. Chukua sehemu ya desimali ya matokeo hayo na uizidishe tena kwa 60 ili kupata sekunde.