【发布时间】:2022-06-19 17:37:52
【问题描述】:
我目前正在尝试在 dart 的列表中选择一个随机项目。为此,我想生成一个伪随机数(我的种子),这将是我要从列表中选择一个元素的索引。
首先,我想从今天的日期生成种子,如下所示:
import 'package:intl/intl.dart';
final String datePattern = 'yyyy-MM-dd';
final String todays_date = DateFormat(datePattern).format(DateTime.now());
并找到一种将其转换为整数(伪随机数)的方法,以便能够使用该整数作为索引从列表中获取项目。
这样,例如,对于 10 个用户打开一个 Flutter 应用程序,他们每天都会获得相同的列表元素。
List<String> dic = ['a','b','c','d','e','f','g','h','i','j']
var randomItem = (dic.toList()..shuffle()).elementAt(myPseudoRandomNumber);
如何获得上面显示的这个变量“myPseudoRandomNumber”?
【问题讨论】:
-
为什么不使用 Random 类?
-
因为 random 会生成一个随机数(所以是的,我可以使用它,但不能单独使用)。我想从种子中生成一个随机数,如果种子没有改变,每次运行都会给我相同的结果。他在 C++ 中的等价物是:void srand(unsigned int seed):cplusplus.com/reference/cstdlib/srand
-
@Ma Jeed Random 类应该使用种子作为参数,但是你如何从字符串类型的日期将这个种子生成为整数
-
那么你需要C++ srand 或Java Random 的Dart 等价物吗?
标签: list flutter date dart random