今天在工作中遇到這樣一個(gè)問(wèn)題:給定1個(gè)矩形,左下角的點(diǎn)point(x, y),長(zhǎng)w,高h(yuǎn),要在這個(gè)矩形里隨機(jī)出n個(gè)不同的點(diǎn)用來(lái)種怪。這個(gè)算法該怎么寫呢?這對(duì)于我來(lái)說(shuō)確實(shí)成為了一個(gè)問(wèn)題。圖示如下:
由于任務(wù)時(shí)間緊,做的又是Demo的原因,我不假思索的寫出了下面這個(gè)算法:
//從[from, to]區(qū)間中隨機(jī)一個(gè)整數(shù) function randomInt (from, to) { //方法實(shí)現(xiàn)就不寫了 } function randomCoords (point, w, h, n) { //目的數(shù)組 var coords = []; var map = {}; var count = n; if ((w + 1) * (h + 1) < n) { count = (w + 1) * (h + 1); } while (count > 0) { var x = randomInt(point.x, point.x + w); var y = randomInt(point.y, point.y +