我需要在一定範圍內生成隨機數字對(浮點數)。 基本上這些都是點[緯度,經度]對(經度 - 緯度座標)PHP隨機 - exluding/include /浮動/陰性和其他動物
我認爲這將與
<?php echo (rand(0,60).'.'.rand(0,99999999999999).' || '); // yes, a string is ok...?>
非常簡單,但它並沒有給我過多少個號碼的控制漂浮點(分辨率)之後 - 我需要修正。
所以接下來的階段是:
<?php echo (rand(0,60*pow(10,6)))/pow(10,6).' || '; //pow(10,$f) where $ is the resolution ?>
和工作原理。那種.. 有時它會產生像
22.212346 || 33.134 || 36.870757 || //(rare , but does happen)
但結果嘿 - 座標-90〜90(LON)和-180到180(LAN) - 怎麼樣負?
echo (rand(0,-180*pow(10,9)))/pow(10,9).' || ';
應該這樣做..和一切結合在一起後應使這一切介紹給我莫名其妙隨機字符串像
23.0239423525 || -135.937419777
- 在這裏
是
是我的問題(一個或多個)。
作爲我是新手 - 我錯過了什麼?是否沒有內置的函數來生成隨機浮點數在PHP中爲負數到正數範圍?
爲什麼上面的函數有時只會返回分辨率3,4或5,如果它被告知返回6(我沒有應用任何ABS或ROUND) - 在PHP中是否有自動舍入?如果有,如何避免它?
我注意到「隨機」並不是隨機的 - 生成的數字總是或多或少地在一個範圍之間串聯 - 彼此接近。 PHP隨機是一個簡單的非常非常快速的旋轉計數器嗎?
我如何從這個生成的範圍EXCLUDE範圍? (或實際上和一系列的範圍)
我知道這些是很多問題,但任何幫助/想法都會很棒! (如果第一個回答是肯定的,其餘幾乎可以:-)
嗨,謝謝你 - 你的代碼顯然更優雅和效率,然後我的 - 我不知道'number_format()' - 但我怎麼能EXCLUDE從隨機函數的範圍(問題的其他部分) – 2012-03-10 13:02:28
Hi @Obmerk Ninenine見我的編輯。 – 2012-03-10 13:03:44
謝謝,我需要從RANDOM中排除SPECIFIC範圍 - 而不是RANDOM中的RANDOM - 只是爲了舉一個例子,讓我們說我需要生成世界座標,但EXCLUDE所有座標都是例如「朝鮮」或「沙漠」 - 所以我有這些協調員,我怎麼能排除這些範圍?使用數組是我唯一的選擇?該數組將是巨大的..(除非我可以以某種方式描述一個封閉的多邊形在PHP ...)因此,範圍是我唯一的選擇,我認爲。但究竟如何? – 2012-03-10 13:48:37