成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - js 二維數(shù)組交叉取隨機(jī)數(shù),如何實(shí)現(xiàn)取到的隨機(jī)數(shù)比較平均?

瀏覽:117日期:2023-02-11 17:07:21

問題描述

有一個(gè)二維數(shù)組,如何交叉(上下左右不相鄰)取2或3個(gè)隨機(jī)數(shù)?

數(shù)組:

var a = [ [0, 1], [2, 3], [4, 5], [6, 7]];

這樣寫了一個(gè),但是感覺很死板,取到的數(shù)不太平均而且代碼寫的有點(diǎn)臃腫,大神們有更好的方案嗎?

function select() { var a = [[0, 1],[2, 3],[4, 5],[6, 7] ]; var lastSelect = -1; for (var i = 0; i < a.length; i++) {var index = getRandomNumber(lastSelect, a[i].length);console.log(a[i][index]);lastSelect = index; }}function getRandomNumber(lastSelect, max) { var random = Math.floor(Math.random() * max); if (random == lastSelect) return getRandomNumber(lastSelect, max); else return random;}select()

問題解答

回答1:

條件是上下左右不相鄰。假設(shè)起始點(diǎn)坐標(biāo)為(0,0),那么屏蔽以下點(diǎn)(-1, 0), (0, -1), (1, 0), (0, 1)。這些點(diǎn)的特性是:x的絕對(duì)值加y的絕對(duì)值等于1。在合理范圍內(nèi)隨機(jī)x,y坐標(biāo)的值并各取絕對(duì)值相加,如果不等于1且之前沒有取過這個(gè)坐標(biāo)即為合法。

回答2:

這里提供一種非常簡(jiǎn)單但完全滿足需求的 hack 思路,即故意【交叉著取數(shù)】,來達(dá)到【上下左右不相鄰】的需求,只需兩行:

function pick (arr) { // 若數(shù)組長(zhǎng)度為 5,則該下標(biāo) x 的范圍為 1~3 // 直接依次取 a[x - 1], a[x], a[x + 1] 中交錯(cuò)的項(xiàng)即可 // 為了保證不越界而根據(jù)數(shù)組長(zhǎng)度限制 x 取值范圍 const pickedIndex = Math.max( 0, parseInt(Math.random() * arr.length - 2) ) + 1 // 第二維下標(biāo)交錯(cuò)著 0 1 取值,達(dá)到數(shù)字不相交的需求 return [ arr[pickedIndex - 1][0], arr[pickedIndex][1], arr[pickedIndex + 1][0] ]}

標(biāo)簽: JavaScript
主站蜘蛛池模板: 成人精品一区二区三区中文字幕 | av亚洲男人天堂 | 欧美视频成人 | 荡女妇边被c边呻吟久久 | 免费黄网大全 | 欧美性高清视频免费看www | 国产精品爽爽va在线观看无码 | 成人在线综合网 | 成人免费看毛片 | 成人做爰视频www在线观看 | 扒开两腿猛进入爽爽视频 | 乱人伦中文字幕视频 | 国产一区二区三区高清 | 国产一区二区三区在线观看精品 | 国产免费一区二区三区在线 | 日日摸夜夜搂人人要 | 欧美成人午夜影院 | 中文字幕精品一区二区绿巨人 | 欧美日本一区二区三区道 | 欧美成人福利 | 欧美一级色 | 精品国产自在现线看久久 | 暴操美女 | 草草视频在线播放 | 国产成人18黄网站在线观看网站 | 男女男精品视频网站 | 欧美在线日韩在线 | 男女福利社 | 窝窝女人体国产午夜视频 | 精品国产系列 | 中文字幕一区二区三区亚洲精品 | 成人免费在线视频网 | 在线看亚洲 | 成年网站在线在免费播放 | 久久综合精品视频 | 在线视频观看一区 | 沈樵在线观看福利 | 免费看a网站 | 亚洲最大的视频网站 | 亚洲欧美视频 | 性色午夜视频免费男人的天堂 |