当前位置: 首页 > news >正文

Java 多线程抢红包

问题需求

     一个人在群里发了1个100元的红包,被分成了8个,群里有10个人一起来抢红包,有抢到的金额随机分配。

红包功能需要满足哪些具体规则呢?

1、被分的人数抢到的金额之和要等于红包金额,不能多也不能少。

2、每个人至少抢到1元。

3、要保证红包拆分的金额尽可能分布均衡,不要出现两极分化太严重的情况。

使用线程的同步,红包100元就是资源共享!! 

public class TestRedPacket {public static void main(String[] args) {//用户名List<String> list = Arrays.asList("张三", "刘芳", "李飞", "王芳", "陈风", "方涛", "房名", "王霞", "安利", "田园");//5个线程for (int i = 0; i < 10; i++) {MyThread1 my = new MyThread1(list.get(i));//启动my.start();}}
}class MyThread1 extends Thread {private static int money = 100;  //总金额private static int count = 8;   //个数public MyThread1(String name) {super(name);}@Overridepublic void run() {//同步synchronized (MyThread1.class) {int prize = 0;if (count == 0) {System.out.println(getName() + "- 没抢到!");} else { //最后一个if (count == 1) {prize = money;} else { //随机Random r = new Random();//随机范围:[1,m/n×2-1]//二倍均值法int bounds = (money / count) * 2 - 1;prize = r.nextInt(bounds) + 1;}money -= prize;count--;System.out.println(getName() + "- 抢到【" + prize + "】元!");}}}
}

相关文章:

Java 多线程抢红包

问题需求 一个人在群里发了1个100元的红包&#xff0c;被分成了8个&#xff0c;群里有10个人一起来抢红包&#xff0c;有抢到的金额随机分配。 红包功能需要满足哪些具体规则呢? 1、被分的人数抢到的金额之和要等于红包金额&#xff0c;不能多也不能少。 2、每个人至少抢到1元…...

【PB案例学习笔记】-08 控件拖动实现

写在前面 这是PB案例学习笔记系列文章的第8篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gitee…...

读书笔记整理

1.对天才而言&#xff0c;任何努力都如做游戏般容易和有趣&#xff0c;兴趣是发展的原动力。从这个角度来看&#xff0c;通过普通人的劳动是无法创造天才的。 2.让孩子理解语法是很困难的。苦背不如练才是行之有效的办法。孩子们永远是故事迷&#xff0c;在教孩子们外语时&…...

uniapp蓝牙打印图片

前言 这是个蓝牙打印图片的功能&#xff0c;业务是打印界面固定的demo范围&#xff0c;这里通过html2canvas插件生成的图片base64&#xff0c;然后图片base64绘制到canvas中去后&#xff0c;获取canvas中的像素信息&#xff0c;然后对像素信息进行一个灰度值处理&#xff0c;灰…...

Ajax用法总结(包括原生Ajax、Jquery、Axois)

HTTP知识 HTTP&#xff08;hypertext transport protocol&#xff09;协议『超文本传输协议』&#xff0c;协议详细规定了浏览器和万维网服务器之间互相通信的规则。 请求报文 请求行: GET、POST /s?ieutf-8...&#xff08;url的一长串参数&#xff09; HTTP/1.1 请求头…...

LeetCode 题解:112. 路径总和,递归,JavaScript,详细注释

原题链接&#xff1a; 112. 路径总和 解题思路&#xff1a; 如果求根节点到叶子节点的路径上的节点值之和&#xff0c;假设共有3个节点&#xff0c;那么写成计算式是val1 val2 val3 sum那么将计算式转换就可以得到val3 sum - val1 - val2也就是说&#xff0c;问题可以从…...

Spring (15)Spring Boot的自动配置是如何工作的

Spring Boot的自动配置是通过条件注解&#xff08;如ConditionalOnClass&#xff0c;ConditionalOnBean等&#xff09;和EnableAutoConfiguration注解来实现的。这一机制主要是为了简化配置过程&#xff0c;让开发者在满足特定条件时自动配置Spring应用。接下来&#xff0c;我们…...

【机器学习】—机器学习和NLP预训练模型探索之旅

目录 一.预训练模型的基本概念 1.BERT模型 2 .GPT模型 二、预训练模型的应用 1.文本分类 使用BERT进行文本分类 2. 问答系统 使用BERT进行问答 三、预训练模型的优化 1.模型压缩 1.1 剪枝 权重剪枝 2.模型量化 2.1 定点量化 使用PyTorch进行定点量化 3. 知识蒸馏…...

54. UE5 RPG 增加伤害类型

在正常的RPG游戏中&#xff0c;都存在一个类别就是属性伤害&#xff0c;比如&#xff0c;在一个游戏里面有一个火属性的技能&#xff0c;它造成的伤害就是火属性类型的&#xff0c;并且它还有可能有附加伤害&#xff0c;比如给予目标一个灼烧效果&#xff0c;每秒造成多少的火属…...

llama3 微调教程之 llama factory 的 安装部署与模型微调过程,模型量化和gguf转换。

本文记录了从环境部署到微调模型、效果测试的全过程&#xff0c;以及遇到几个常见问题的解决办法&#xff0c;亲测可用&#xff08;The installed version of bitsandbytes was compiled without GPU support. NotImplementedError: Architecture ‘LlamaForCausalLM’ not sup…...

C++三剑客之std::any(二) : 源码剖析

目录 1.引言 2.std::any的存储分析 3._Any_big_RTTI与_Any_small_RTTI 4.std::any的构造函数 4.1.从std::any构造 4.2.可变参数模板构造函数 4.3.赋值构造与emplace函数 5.reset函数 6._Cast函数 7.make_any模版函数 8.std::any_cast函数 9.总结 1.引言 C三剑客之s…...

【C语言】8.C语言操作符详解(2)

文章目录 6.单⽬操作符7.逗号表达式8.下标访问[]、函数调⽤()8.1 [ ] 下标引⽤操作符8.2 函数调⽤操作符 9.结构成员访问操作符9.1 结构体9.1.1 结构的声明9.1.2 结构体变量的定义和初始化 9.2 结构成员访问操作符9.2.1 结构体成员的直接访问9.2.2 结构体成员的间接访问 6.单⽬…...

vivado 物理约束KEEP_HIERARCHY

KEEP_HIERARCHY Applied To Cells Constraint Values • TRUE • FALSE • YES • NO UCF Example INST u1 KEEP_HIERARCHY TRUE; XDC Example set_property DONT_TOUCH true [get_cells u1] IOB Applied To Cells Constraint Values IOB_XnYn UCF Examp…...

Linux 三十六章

​​​​​​​ &#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要…...

ntsd用法+安装包

ntsd是一个强大的进程终止软件&#xff0c;除了少数系统进程之外一律杀掉 用法 1.ntsd -c q -p 进程的pid 2.ntsd -c q -pn 进程名 记得解压到System32里面 当然&#xff0c;资源管理器的进程是可以杀的所以也可以让电脑黑屏 同样可以让电脑黑屏的还有taskkill /f /im 进程…...

Nacos 微服务管理

Nacos 本教程将为您提供Nacos的基本介绍&#xff0c;并带您完成Nacos的安装、服务注册与发现、配置管理等功能。在这个过程中&#xff0c;您将学到如何使用Nacos进行微服务管理。下方是官方文档&#xff1a; Nacos官方文档 1. Nacos 简介 Nacos&#xff08;Naming and Confi…...

Kubernetes集群上的Etcd备份和恢复

在本教程中&#xff0c;您将学习如何在Kubernetes集群上使用etcd快照进行etcd备份和恢复。 在Kubernetes架构中&#xff0c;etcd是集群的重要组成部分。所有集群对象及其状态都存储在etcd中。为了更好地理解Kubernetes&#xff0c;有几点关于etcd的信息是您需要了解的。 它是…...

创建型模式 (Python版)

单例模式 懒汉式 class SingleTon:# 类属性_obj None # 用来存储对象# 创造对象def __new__(cls, *args, **kwargs):# 如果对象不存在&#xff0c;就创造一个对象if cls._obj is None:cls._obj super().__new__(cls, *args, *kwargs)# 返回对象return cls._objif __name__…...

​​​【收录 Hello 算法】9.4 小结

目录 9.4 小结 1. 重点回顾 2. Q & A 9.4 小结 1. 重点回顾 图由顶点和边组成&#xff0c;可以表示为一组顶点和一组边构成的集合。相较于线性关系&#xff08;链表&#xff09;和分治关系&#xff08;树&#xff09;&#xff0c;网络关系&#xff08;图&am…...

MYSQL数据库基础语法

目录 友情提醒第一章&#xff1a;数据库简述1&#xff09;数据库简述2&#xff09;常见的数据库软件3&#xff09;MySQL数据库安装和连接4&#xff09;SQL语句分类①DDL&#xff08;Data Definition&#xff09;②DML&#xff08;Data Manipulation&#xff09;③DQL&#xff0…...

Windows系统Btrfs驱动终极指南:免费解锁Linux文件系统的强大功能

Windows系统Btrfs驱动终极指南&#xff1a;免费解锁Linux文件系统的强大功能 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 想在Windows上体验Linux下一代文件系统的强大功能吗&#…...

实时洞察,视觉赋能:国内情绪识别API公司推荐及计算机视觉流派深度解析

引言在人工智能与各行业深度融合的今天&#xff0c;通过非接触方式理解用户情绪、生理状态与心理倾向&#xff0c;已成为人机交互、安全防控、健康管理等领域的关键能力。本文围绕提供情绪识别类API的公司类型&#xff0c;梳理国内情绪识别的主流技术路径&#xff0c;并重点解析…...

ceph的块存储如何骗过服务器,让服务器把它当做真实的硬盘

ceph的块存储&#xff0c;就是一块远程网络硬盘。操作系统为啥会读写这块假硬盘呢&#xff1f; 一台服务器要使用CEPH提供的块存储&#xff0c;也是需要ceph的驱动软件来和ceph通讯吧 是的&#xff0c;你的理解完全正确。一台服务器想要使用 Ceph 提供的块存储&#xff0c;必须…...

微信聊天记录丢了怎么找回?这份教程很实用

你是否经历过这样的崩溃瞬间&#xff1a;手机清理空间时不小心删了微信聊天记录&#xff0c;或者重装微信后发现重要的对话全部消失&#xff1f;别慌&#xff0c;本文将系统梳理微信聊天记录丢失的常见原因&#xff0c;并提供多种经过验证的恢复方案&#xff0c;从微信官方自带…...

从UISegmentedControl迁移到TwicketSegmentedControl:完整迁移指南

从UISegmentedControl迁移到TwicketSegmentedControl&#xff1a;完整迁移指南 【免费下载链接】TwicketSegmentedControl Custom UISegmentedControl replacement for iOS, written in Swift 项目地址: https://gitcode.com/gh_mirrors/tw/TwicketSegmentedControl 想要…...

为什么这款文档转换工具能同时实现高效与精准?揭秘Marker的核心优势

为什么这款文档转换工具能同时实现高效与精准&#xff1f;揭秘Marker的核心优势 【免费下载链接】marker Convert PDF to markdown JSON quickly with high accuracy 项目地址: https://gitcode.com/GitHub_Trending/ma/marker 在当今信息爆炸的时代&#xff0c;处理PD…...

设计师私藏的11个纹理Prompt原子模块(仅限本周开放下载:含PBR贴图映射表+光照反射系数速查卡)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;纹理Prompt原子模块的设计哲学与底层逻辑 纹理Prompt原子模块并非简单拼接关键词的字符串生成器&#xff0c;而是以认知建模为根基、以可组合性为约束、以语义保真度为校验目标的结构化表达系统。其设计…...

性价比高的国产PLM软件公司

在制造业领域&#xff0c;不少企业都面临着研发效率低下、协同困难等问题。比如某电子制造企业&#xff0c;研发部门与生产部门之间信息沟通不畅&#xff0c;图纸版本管理混乱&#xff0c;导致产品研发周期延长&#xff0c;生产成本增加&#xff0c;新品上市时间比预期晚了近30…...

强制启动 Cursor IDE 主程序(不带 Agent 模式)

&#x1f527; 终极解决&#xff1a;强制启动 Cursor IDE 主程序&#xff08;不带 Agent 模式&#xff09;方法 1&#xff1a;用「命令行」强制启动主程序&#xff08;最稳&#xff09;按 WinR 打开运行窗口&#xff0c;输入 cmd 回车&#xff0c;打开命令提示符输入下面这行命…...

终极文档下载指南:如何用kill-doc一键拯救30+平台的文档资源

终极文档下载指南&#xff1a;如何用kill-doc一键拯救30平台的文档资源 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是…...