javascript - 谷歌表格互斥数字顺序随机数生成器
问题描述
有点拗口……我目前正在使用下面的脚本在单元格 I6:M6 中生成 1 到 200 之间的随机数。出于我的预期目的,这个脚本有两个问题(这两个问题都不是主要的,但我想要一些“润色”。
问题 1) 不互斥。这是最大的问题,因为五个数字中的每一个都必须是唯一的。它们不太可能会重复,但是当它确实发生时会有些烦人。
问题 2)我完全不知道如何或是否有可能生成这些随机数,然后按数字顺序放入 I6:M6 中,I6 是最小的。
我是一个完全的业余爱好者和 JavaScript(以及任何其他代码),我只是设法从我在其他地方找到的信息拼凑起来,但我对它的工作原理有一个非常模糊的理解。
///////////////////////////////////////
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [ {name:"Roll Dice",functionName:"rollDice"} ];
sheet.addMenu("Script", entries);
};
function rollDice() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("sheet1 (New)");
var cell = sheet.getRange("I6");
cell.setValue( Math.floor((Math.random()*200)+1) );
var cell = sheet.getRange("J6");
cell.setValue( Math.floor((Math.random()*200)+1) );
var cell = sheet.getRange("K6");
cell.setValue( Math.floor((Math.random()*200)+1) );
var cell = sheet.getRange("L6");
cell.setValue( Math.floor((Math.random()*200)+1) );
var cell = sheet.getRange("M6");
cell.setValue( Math.floor((Math.random()*200)+1) );
};
///////////////////////////////////////
解决方案
为什么是脚本?I6 中的这个简单公式应该可以做到:
=TRANSPOSE(SORT(SORTN(SEQUENCE(200),5,0,RANDARRAY(200),1)))
推荐阅读
- java - 如何将 Opcodes 中的 ASM 的 API 版本映射到 Java 版本?
- python - python抓取后无法读取导入的带有UTF-8格式的excel的csv文件
- loopbackjs - 如何访问 loopback4 中的请求标头?
- javascript - 使用功能组件在 google-map-react 中向 Google Maps 添加标记
- r - 将一列扩展到R中的多列
- c++ - C++ 标准容器不插入新值的问题
- javascript - 将数组中的所有日期转换为格式 MM/DD/YYYY javascript
- javascript - 如何将 html 中的 js 与 webpack 捆绑在一起?
- javascript - Flickity - 提高拖动/滑动触发到下一张/上一张幻灯片的灵敏度
- php - InvalidArgumentException:格式错误的 UTF-8 字符,可能在文件中错误编码 - Laraval