首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Dart选择列表中的随机元素,但不应选择超过77的元素

在Dart中,我们可以使用随机数生成器来选择一个选择列表中的随机元素。为了确保选择的元素不超过77,我们可以使用循环来重新选择,直到选择的元素满足条件。

以下是一个示例代码:

代码语言:txt
复制
import 'dart:math';

void main() {
  List<int> choices = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77];

  int randomElement = getRandomElement(choices);
  print(randomElement);
}

int getRandomElement(List<int> choices) {
  Random random = Random();
  int randomIndex = random.nextInt(choices.length);

  while (choices[randomIndex] > 77) {
    randomIndex = random.nextInt(choices.length);
  }

  return choices[randomIndex];
}

在上述代码中,我们首先定义了一个选择列表choices,其中包含了从1到77的整数。然后,我们定义了一个getRandomElement函数,该函数使用Random类生成一个随机索引,然后通过循环检查选择的元素是否大于77,如果是,则重新生成随机索引,直到选择的元素满足条件。最后,我们打印出选择的随机元素。

请注意,以上代码仅为示例,实际应用中,您可能需要根据具体需求进行适当的修改和优化。

关于Dart的更多信息和学习资源,您可以参考腾讯云的Dart开发文档:Dart开发文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • AngularDart4.0 英雄之旅-教程-07路由 顶

    RouterLink指令告诉路由在用户点击链接时位置。 您使用链接参数列表定义了一个路由指令, 这个列表在我们小样本只有一个元素,引用路由名称。...回头看看路由配置,确定“Heroes”是到HeroesComponent路由名字。 了解路由章节链接参数列表。 刷新浏览器,浏览器显示应用标题和英雄链接,但不是英雄列表。...选择一个仪表板英雄 当用户选择仪表板英雄时,应用程序应该导航到HeroDetailComponent以允许用户查看和编辑选择英雄。...在HeroesComponent中选择一个英雄 在HeroesComponent,当前模板展示了一个“主/细节”风格,顶部是英雄列表,下方是选定英雄详细信息。...从指令列表删除HeroDetailComponent。 删除英雄细节导入。 当用户从列表选择一个英雄时,他们不会进入详细页面。

    17.6K30

    python3--字典,字典嵌套,概念:分别赋值

    讲述元祖特性 #     答:元祖被称为只读列表,不能被修改 #     b. 请问tu变量第一个元素 “alex” 是否可被修改? #     答:不能 #     c. ...请在k3对追加一个元素 44,输出修改后字典 dic['k3'].append(44) print(dic) #     g. ...请在k3对第 1 个位置插入个元素 18,输出修改后字典 dic['k3'].insert(1, 18) print(dic) # 3, av_catalog = {     "欧美":{...li= [11,22,33,44,55,66,77,88,99,90], # 将所有大于 66 值保存至字典第一个key,将小于 66 值保存至第二个key。...# 即: {'k1': 大于66所有值列表, 'k2': 小于66所有值列表} li= [11,22,33,44,55,66,77,88,99,90] dic_5 = {'k1':[],'k2':[

    4.6K30

    AngularDart4.0 指南- 模板语法二 顶

    他们在输入框输入文字。 他们从列表选择项目。 他们点击按钮。 这样用户操作可能导致数据流向相反方向:从元素到组件。 了解用户操作唯一方法是侦听某些事件,例如按键,鼠标移动,点击和触摸。...NgFor:为列表每个项目重复一个模板。 NgSwitch:只显示多个可能元素一个。 NgIf  您可以通过向该元素应用NgIf指令(称为宿主元素)来添加或移除DOM元素。...Angular把这条指令翻译成一个围绕宿主元素,然后重复使用这个模板为列表每个英雄创建一组新元素和绑定。 在“结构指令”指南中了解微语法。...它别无选择,只能拆除旧DOM元素并插入所有新DOM元素。 Angular可以通过trackBy避免这种流失。 向组件添加一个返回NgFor跟踪值方法。 在这个例子,这个值就是英雄ID。...例如,您可以将数字显示为货币,强制文本为大写,或筛选列表并对其进行排序。 对于这些小型转换来说,Angular 管道是一个很好选择。 管道是简单函数,它接受一个输入值并返回一个转换后值。

    30K20

    2024-07-17:用go语言,给定一个整数数组nums, 我们可以重复执行以下操作: 选择数组前两个元素并删除它们, 每

    2024-07-17:用go语言,给定一个整数数组nums, 我们可以重复执行以下操作: 选择数组前两个元素并删除它们, 每次操作得到分数是被删除元素和。...解释:我们执行以下操作: 1.删除前两个元素,分数为 3 + 2 = 5 ,nums = [1,4,5] 。 2.删除前两个元素,分数为 1 + 4 = 5 ,nums = [5] 。...由于只剩下 1 个元素,我们无法继续进行任何操作。 答案2024-07-17: chatgpt 题目来自leetcode3038。...3.检查是否能继续操作:检查当前两个元素与第一次删除两个元素之和是否相等,如果不相等,则退出循环。 4.更新操作次数:如果满足条件,增加操作次数 t。...总时间复杂度是 O(n),其中 n 是 nums 数组长度。因为我们只需要遍历一次整个数组,执行操作是固定,不会随着数组变大而增加时间复杂度。

    7020

    《深入浅出Dart》集合类型

    DartList DartList是一种重要数据类型,可以存储一系列有序元素元素类型可以是任意类型,包括数字,字符串,布尔值,对象,甚至是其他List。...创建和初始化List 在Dart,你可以通过几种不同方式创建和初始化List: // 创建空列表 var emptyList = []; // 创建具有几个初始元素列表 var initializedList...以下是一些常用List方法: add(element): 在List末尾添加一个元素 insert(index, element): 在指定索引处插入一个元素 remove(element): 删除列表首个匹配元素...Set DartSet是一种无序、包含唯一项集合,所有的元素都是唯一,没有重复项。...(other): 返回一个新Set,包含当前Set和另一个Set中共有的元素 difference(other): 返回一个新Set,包含当前Set元素但不包含另一个Set元素 以下是这些方法使用示例

    17130

    《图解算法》总结第1章 算法简介第2章 选择排序第3章 递归第4章 快速排序第5章 散列表第6章 广度优先搜索第7章 狄克斯特拉算法第8章 贪婪算法第9章 动态规划

    第2章 选择排序 数组和链表 数组元素存储在内存相连位置。 链表元素可存储在内存任何地方。 链表优势在插入元素方面,但进行跳跃读取元素效率低,数组优势在于读取效率高。...链表只能顺序访问:要读取链表第十个元素,得先读取前九个元素,并沿链接找到第十个元素随机访问意味着可直接跳到第十个元素。本书经常说数组读取速度更快,这是因为它们支持随机访问。...每个函数调用都要占用一定内存,如果栈很高,就意味着计算机存储了大量函数调用信息。在这种情况下,你有两种选择。 练习 3.2  假设你编写了一个递归函数,但不小心导致它没完没了地运行。...使用D&C处理列表时,基线条件很可能是空数组或只包含一个元素数组。 实现快速排序时,请随机选择用作基准值元素。快速排序平均运行时间为O (n log n )。...冲突很糟糕,你使用可以最大限度减少冲突散列函数。 散列表查找、插入和删除速度都非常快。 散列表适合用于仿真映射关系。 一旦填装因子超过0.7,就该调整散列表长度。

    1.6K90

    Flutter 卡片选择

    选择器是完全可配置,动画时间,卡之间间隙,堆叠卡尺寸因子。用户可以从左向右或从右向左滑动卡。特定卡上信息将有所不同。 该演示视频展示了如何在颤动创建卡选择器。...**lastCardSizeFactor:**与第一个元素相比,此属性用于呈现最后一个元素因子。 **mainCardWidth:**此属性用于列表第一个元素宽度。...**onChanged:**此属性用于在卡更改后执行回调。 **mainCardPadding:**此属性用于左填充列表第一个元素。 实现 将依赖项添加到pubspec-yaml文件。...在内部,我们将添加一个json文件,并添加一个_cards动态列表,该列表等于json解码。我们还将映射一个等于_cards动态列表_data并包装在setState()。...另外,我们将添加mainCardWidth表示列表第一个元素宽度,mainCardHeight表示列表第一个元素高度,onChanged表示要在更改后的卡片上执行回调。

    7.4K20

    Dart 语言异步编程之Isolate

    需要注意,用于运行新Isolate代码文件,必须包含一个main函数,它是新Isolate入口方法,该main函数args参数列表,正对应spawnUri第二个参数。...在上例,我们发送是包含两个元素List对象,第一个元素是整型,表示消息类型,第二个元素则表示消息内容。...Flutter 创建Isolate 无论如何,在Dart创建一个Isolate都显得有些繁琐,可惜Dart官方并未提供更高级封装。...需要注意,使用compute导入'package:flutter/foundation.dart'包。...一个最简单判断方法是根据某些任务平均时间来选择: 方法执行在几毫秒或十几毫秒左右使用Future 如果一个任务需要几百毫秒或之上,则建议创建单独Isolate 除此之外,还有一些可以参考场景

    3.8K22

    AngularDart4.0 英雄之旅-教程-03英雄编辑器

    文本框显示英雄名称属性,并根据用户类型更新该属性。 您需要在表单元素和hero.name属性之间进行双向绑定。...您可以逐一添加指令,或为了方便您可以添加formDirectives列表(注:新import语句): lib/app_component.dart (directives) import 'package...您使用Dart模板字符串编写了多行模板,以使模板可读。 您使用内置ngModel指令向元素添加了双向数据绑定。 此绑定显示Hero名称,并允许用户更改它。...在下一个教程页面,您将搭载“Tour of Heroes”应用程序,以显示英雄列表。...您还将允许用户选择英雄并显示其详细信息。 您将了解有关如何检索列表并将其绑定到模板更多信息。

    3.2K10

    【Flutter】ListView 列表 ( List 集合 map 方法说明 | 垂直列表 | 水平列表 | 代码示例 )

    文章目录 一、List 集合 map 方法说明 ( 生成 ListView 组件集合 ) 二、ListView 垂直列表 三、ListView 水平列表 四、相关资源 一、List 集合 map 方法说明...( 生成 ListView 组件集合 ) ---- ListView 列表控件条目 , 一般是遍历集合生成 ; 如 : 给定如下 List 集合 ; const NAMES = [ '宋江', '...卢俊义', '吴用', '公孙胜', '关胜']; 调用 List 集合 map 方法 , 可以遍历操作集合每一项 , 返回一个新数组 ; map 方法原型如下 ; Iterable...map(T f(E e)) => MappedIterable(this, f); 使用 map 方法 , 遍历 NAMES 集合 , 然后传入匿名方法 , 返回 Widget...组件 , 那么上述原型泛型 T 就是 Widget 类型 ; 下面的方法 , map 方法传入了一个匿名函数 , 参数是 name , 类型是 String , 返回值是 _generateWidget

    1.5K20

    AngularDart4.0 指南- 显示数据 顶

    您可以通过将HTML模板控件绑定到Angular组件属性来显示数据。 在这个页面,您将创建一个包含英雄列表组件。 您将显示英雄名单列表,并有条件地在列表下方显示一条消息。...怎样创建? @Component注解CSS选择器指定了一个名为元素。...元素* ngFor是Angular“repeater”指令。...它正在添加和删除DOM段落元素。 这可以提高性能,特别是在大型项目中,当有条件地包含或排除大量HTML与许多数据绑定。 试试看。 由于列表中有四个项目,所以应该显示消息。...回到app_component.dart并删除或注释掉英雄列表一个元素。 浏览器应该自动刷新,消息应该消失。 概要 现在你知道如何使用: 用双花括号插入来显示组件属性。 ngFor显示项目列表

    5.3K10

    对vector等STL标准容器进行排序操作

    这里使用迭代器(iterator)都需是随机迭代器(RadomAccessIterator), 也就是说可以随机访问迭代器,如:it+n什么。...以下是所有STL sort算法函数名字列表: 函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序...因此在这些容器元素一直是有序。 这些容器迭代器类型并不是随机型迭代器,因此,上述那些排序函数,对于这些容器是不可用。...). 3 选择合适排序函数 ---- 为什么要选择合适排序函数?...本文以实例方式,解释了STL中排序算法特性,并总结了在实际情况下如何选择合适算法。

    2.5K20
    领券