Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >向数组中添加随机数并显示在现场

向数组中添加随机数并显示在现场
EN

Stack Overflow用户
提问于 2022-11-06 12:12:04
回答 1查看 47关注 0票数 0

希望有人能提供帮助或建议。我在javascript中工作,代码将为我挑选一个随机数,但我需要每周存储这个数字,另外,不要让代码在下个星期选择相同的数字。此外,我将希望每周被挑选的号码显示在网站上。

就目前情况而言,代码选择随机数,但是数组总是给我多个数字,而不是存储函数为我选择的数字。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getRndId() {


return Math.floor(Math.random() * (0, 5554));
}




document.getElementById("random_number").innerHTML = getRndId();




const IdArray = [];
for (let i = -1; i<getRndId(); i++) {
  if (!IdArray.includes(getRndId())) {
    IdArray.push(getRndId());
  }
}

document.getElementById("Picked_numbers").innerHTML = IdArray;
EN

回答 1

Stack Overflow用户

发布于 2022-11-06 12:46:04

通常情况下,JavaScript Math.random()是不可种的。多亏了David的seedrandom.js库,您现在可以为随机数生成播撒种子,从而使其可复制。在随机数序列中避免重复最有效的方法是使用混叠数组。在下面的片段中,我使用了杜斯滕菲尔德洗牌。

当前年份内的周数可以通过getWeekNumber(d)计算。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function shuffle(a){  // Durstenfeld shuffle
 for(let j,i=a.length;i>1;){
  j=Math.floor(Math.random()*i--);
  if (i!=j) [a[i],a[j]]=[a[j],a[i]]
 }
 return a
}
function getWeekNumber(d) { // get current week within calendar year
    // Copy date so don't modify original
    d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
    // Set to nearest Thursday: current date + 4 - current day number
    // Make Sunday's day number 7
    d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7));
    // Get first day of year
    var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));
    // Calculate full weeks to nearest Thursday
    var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7);
    // return year-2020 and week number as an array
    return [d.getFullYear()-2020,weekNo];
}

Math.seedrandom("start"); // random sequence is now reproducible!
const [year,wk]=getWeekNumber(new Date()), week=53*year+wk,
  arr=shuffle([...Array(5555).keys()].slice(1)); // array with 5554 elements

console.log(`Last week's random number is ${arr[week-1]}.`);
console.log(`The random number for week no ${wk} is ${arr[week]}.`);
console.log(`Next week's random number is ${arr[week+1]}.`);
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/2.3.10/seedrandom.min.js"></script>

一些进一步的细节:

函数getWeekNumber()返回两个数字的数组:当前年份-2020年(year)和当前年份内的周数(wk)。我选择将这两个数字相加,第一个数字乘以53,再加上第二个数字。这给了我在2020年1月1日后任何一周的可重复周数,我将其存储在常数week中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const [year,wk]=getWeekNumber(new Date()), week=53*year+wk

arr[week]是数组arr的索引week的元素,是由5554个元素组成的经过洗牌的序列号数组.有了这个数组,我可以在100多年的时间内安全地生成每周可重复的随机数--不重复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74339395

复制
相关文章
winfrom向窗体中拖放图片并显示
首先要设置窗体的AllowDrop属性为true。然后在窗体的DragEnter事件中添加如下代码:调用自定义的显示图片的方法。
跟着阿笨一起玩NET
2018/09/19
9290
java如何向数组中添加元素[数组的添加]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java如何向数组中添加元素[数组的添加],希望能够帮助大家进步!!!
Java架构师必看
2022/04/06
7.7K0
Python 中如何向列表或数组添加元素
然而,与其它编程语言不同,数组在 Python 中不是一个内置的数据结构。Python 使用列表取代传统的数组。
Python学习者
2023/09/11
3590
JavaScript | 数组的splice()方法,向/从数组添加/删除项目,并返回删除的项目
JavaScript代码: /* * splice() 方法向/从数组添加/删除项目,并返回删除的项目。 * 注释:splice() 方法会改变原始数组。 * 语法:array.splice(index, howmany, item1, ....., itemX) * index:必需。整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。 * howmany:可选。要删除的项目数。如果设置为 0,则不会删除任何项目。 * item1, ...
倾盖
2022/08/16
3.3K0
JavaScript | 数组的splice()方法,向/从数组添加/删除项目,并返回删除的项目
在vue中解析md文档并显示
【说明:】markdown-loader、html- loader是为了让vue能够解析md格式的文件,读取出来,然后使用marked将读取出来的数据转换成html格式渲染到页面上。使用marked是为了使用更方便。
前端小tips
2021/11/30
6.3K0
在vue中解析md文档并显示
Wireshark添加注释并显示
yichen
2023/08/10
4910
Wireshark添加注释并显示
如何向数组里添加元素
一般数组是不能添加元素的,因为数组在初始化时就已定好长度了,不能改变长度,我们如何做到向其中添加元素。
算法与编程之美
2023/01/03
3.5K0
js给数组添加数据的方式/js 向数组对象中添加属性和属性值[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132130.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/30
23.5K0
javascript 向数组中添加数组元素(输入元素,不太重要)「建议收藏」
可以批量向数组对象中输入数组元素,一般用于对数组对象赋初始值,例如,可以通过改变变量的值,(必须是数值型),给数组对象 赋予制定个数的数组元素。
全栈程序员站长
2022/08/27
3.9K0
ajax请求参数使用push循环向数组中添加请求参数
function batch(){ var dataArr = []; $('#line').each(function(){ let obj = {name : $('#name').val(),sex : $('#sex').val()}; dataArr.push(obj) }); if (dataArr.length > 0) { $.ajax({
友儿
2022/09/11
2.6K0
完美:C# Blazor中显示Markdown并添加代码高亮
昨天发了一篇介绍这个库:C# Blazor中显示Markdown文件,介绍怎么在Blazor中显示Markdown内容的文章,文章内的代码是没有高亮的,思来相去,还是要做好,于是百度到这篇文章.NET C# Blazor 服务端渲染Markdown,现在渲染效果如下:
沙漠尽头的狼
2022/03/26
1.7K0
完美:C# Blazor中显示Markdown并添加代码高亮
JS向数组添加元素,插入数据
通过使用push以及unshift即可向数组插入元素,如果要在指定的位置插入元素则可以用splice,splice接收多个参数,分别是索引,要删除的元素个数,新加的元素(可多个,用逗号隔开);
全栈程序员站长
2022/07/22
10.4K0
JS向数组添加元素,插入数据
java如何向数组里添加元素
1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。 但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素;例子如下:
全栈程序员站长
2022/06/27
20.6K0
js向数组指定位置添加元素[通俗易懂]
提示:unshift 方法将直接修改原数组,并将已经存在的元素顺次地移到较高的下标处,而不像其他很多方法一样得到一个原数组的副本。
全栈程序员站长
2022/09/22
8.5K0
WordPress 评论区添加图片代码并自动显示
Power
2023/06/01
3550
在已有的数据库里添加一列,并写入python的数组数据
总结就是,暂时没有直接添加列的办法,只能先读入python,利用pandas写一个dataframe,加入新的列,再将整备好的dataframe写入数据库。
一个有趣的灵魂W
2020/09/15
3.8K0
随机数组归并问题
思路:定义三个数组,两个数组自己输入值,第三个数组用来作归并后的数组,先将两个数组的值全部赋给第三个数组,然后将其进行排序输出。
算法与编程之美
2023/08/22
1450
随机数组归并问题
Worepress中添加swf文件并执行
在媒体库中无法直接上传swf文件,会报出 “抱歉,出于安全的考虑,不支持此文件类型” 的提醒,解决方法:在根目录文件中wp-includes文件夹下的functions.php中 搜索
Diuut
2022/11/22
8940
向mysql配置文件中添加日志配置
socket = usr/local/lnmp/mysql-5.7.21/mysql.sock
93年的老男孩
2019/12/18
3K0
【说站】python随机数种子在多维数组的使用
1、运行test_mult_shape函数,设定相同的随机数组,两次运行两个一行的多维正态分布的结果。
很酷的站长
2022/11/24
6140
【说站】python随机数种子在多维数组的使用

相似问题

SVG圆图中的对中图标

10

Leaflet.js地图中的SVG图标

19

RibbonToggleButton -图标已损坏

10

SearchView图标已损坏

115

FontAwesome ->图标已损坏

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文