如何实现循环生成每次比前一次多一位位数的随机数?
实现方案
你原来的3位随机数生成逻辑可以抽象为通用的n位随机数生成方法,再通过循环控制位数递增即可实现需求,以下是Dart的可运行实现:
import 'dart:math'; // 通用n位随机数生成方法 String generateNumber(int digitCount) { Random random = Random(); // 动态计算当前位数的最小值和取值区间长度 int min = pow(10, digitCount - 1) as int; int range = 9 * min; int randomNumber = random.nextInt(range) + min; return randomNumber.toString(); } void main() { // 可自定义初始位数和总生成次数 int startDigit = 3; int totalGenerateCount = 4; for (int i = 0; i < totalGenerateCount; i++) { int currentDigit = startDigit + i; String result = generateNumber(currentDigit); print(result); // 如果需要赋值给全局number变量,可添加:number = result; } }
逻辑说明
- 原固定3位生成的
nextInt(900) + 100逻辑被抽象后,可适配任意位数的正整数生成,完全兼容你原来的业务逻辑 - 循环时从初始位数逐次加1,即可实现每次生成的随机数位数比上一次多一位的效果
- 你可以自行修改
startDigit和totalGenerateCount参数调整初始位数和总生成量,比如要生成从2位到7位的序列,把startDigit设为2、totalGenerateCount设为6即可
内容的提问来源于stack exchange,提问作者helloitsme3
相关产品推荐
相关产品推荐

