搜尋
首頁web前端js教程JavaScript 產生不重複的隨機數三種實作想法_javascript技巧

在 JavaScript 中,一般產生的隨機數會重複,但是有時我們需要不重複的隨機數,如何實現?下面就來講解三種方法產生不重複的隨機數,並進行比較,看那種方法效率高。

方法一
思路:先建立一個1到3000的數組,每次取一個數,然後去除數組中取出的這個數, 這樣就可以實現永不重複。

複製代碼 代碼如下:



效能:耗時1528 毫秒。

方法二
思路:對方法一的slice方法進行改進,以提高效率。還是從原數組取出一個數, 然後讓原數組的這個位置賦值為null 。下一次取數時判斷是否為null,如果是null就不取。
複製代碼 代碼如下:



性能:耗時290 毫秒。

方法三
思路:把原數組打散,然後再依序輸出, 這樣也可以做到隨機永不重複,且效率更高。
複製代碼 代碼如下:



效能:耗時229 毫秒。
透過性能分析,得出方法三為最佳方案。
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何在 Excel 中创建随机数生成器如何在 Excel 中创建随机数生成器Apr 14, 2023 am 09:46 AM

如何使用 RANDBETWEEN 在 Excel 中生成随机数如果要生成特定范围内的随机数,RANDBETWEEN 函数是一种快速简便的方法。这允许您在您选择的任何两个值之间生成随机整数。使用 RANDBETWEEN 在 Excel 中生成随机数:单击您希望出现第一个随机数的单元格。键入=RANDBETWEEN(1,500)将“1”替换为您要生成的最低随机数,将“500”替换为

Java随机数生成性能优化方法Java随机数生成性能优化方法Jun 30, 2023 pm 12:25 PM

如何优化Java开发中的随机数生成性能随机数在计算机科学中有广泛的应用,特别是在密码学、模拟、游戏等领域。在Java开发中,我们常常需要生成随机数来满足各种需求。然而,随机数生成的性能通常是开发者关注的问题之一。本文将探讨如何优化Java开发中的随机数生成性能。使用ThreadLocalRandom类在Java7中引入了ThreadLocalRandom类

使用Go语言文档中的crypto/rand.Read函数生成随机数使用Go语言文档中的crypto/rand.Read函数生成随机数Nov 04, 2023 pm 03:39 PM

使用Go语言生成随机数Go语言是一种现代化、简洁和高效的编程语言,提供了许多内置库,可用于生成随机数。其中,crypto/rand包提供了一系列函数来生成安全的随机数。在本文中,我们将通过使用crypto/rand包中的Read函数来生成随机数。首先,我们需要导入crypto/rand包,并创建一个字节数组来存储随机数。代码示例如下:packagemain

深入了解numpy中的随机数生成方法和应用深入了解numpy中的随机数生成方法和应用Jan 03, 2024 am 08:23 AM

探索NumPy生成随机数的方法及应用引言:随机数在计算机科学和统计学中有着广泛的应用,例如模拟实验、数据生成和特征选择等。在Python中,NumPy(NumericalPython)库是一个强大的数值计算库,提供了许多用于生成随机数的函数。本文将对NumPy中的随机数生成方法进行探索,并给出具体的代码示例。一、NumPy的随机数生成函数NumPy提供

如何使用PHP数组生成随机数和验证码如何使用PHP数组生成随机数和验证码Jul 16, 2023 am 08:31 AM

如何使用PHP数组生成随机数和验证码随机数和验证码在开发网站和应用程序过程中非常常见。PHP提供了各种方法来生成随机数和验证码。本文将介绍如何使用PHP数组生成随机数和验证码,并附带相应的代码示例。一、生成随机数在PHP中,我们可以使用rand()函数来生成随机数。rand()函数需要两个参数,即最小值和最大值。示例代码如下:$min=1;$max=

如何避免在 Golang 中生成重复的随机数?如何避免在 Golang 中生成重复的随机数?Jun 01, 2024 pm 04:46 PM

在Golang中避免生成重复随机数的方法:创建一个新的随机数生成器rand.New(rand.Source)。使用rand.NewSource(time.Now().UnixNano())作为熵源。使用rand.Intn(n)生成随机整数。

如何在 Golang lambda 函数中生成随机数?如何在 Golang lambda 函数中生成随机数?Jun 05, 2024 pm 12:22 PM

在Golambda函数中生成随机数,需要使用math/rand库:导入库并设置种子以确保不同输出。使用rand.Intn(max)生成随机整数(范围[0,max))。使用rand.Float64()生成随机小数(范围[0.0,1.0))。使用rand.ReadStringN(n)生成随机字符串(长度为n)。

使用java的Math.random()函数生成随机数使用java的Math.random()函数生成随机数Jul 24, 2023 am 08:45 AM

使用Java的Math.random()函数生成随机数随机数在计算机编程中是非常常用的概念,可以帮助我们实现各种功能,比如生成随机密码、抽奖、游戏中的随机事件等等。在Java中,我们可以使用Math.random()函数来生成随机数。Math.random()函数是Java标准库中的一个静态方法,它返回一个大于或等于0且小于1的随机double类型数字。通过

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用