「Mac玩转仓颉内测版46」小学奥数篇9 - 基础概率计算

news2025/2/25 17:26:19

本篇将通过 PythonCangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。


关键词
  • 小学奥数
  • Python + Cangjie
  • 概率计算

一、题目描述

假设有一个袋子中有 5 个红球和 3 个蓝球,每次从袋子中随机抽取一个球。请编写程序计算:

  1. 抽到红球的概率。
  2. 抽到蓝球的概率。
  3. 连续两次抽到红球的概率(不放回)。

输入格式:从控制台输入红球和蓝球的数量。
输出格式:输出三项概率结果,保留两位小数。


二、Python 实现
# 接收用户输入
red = int(input("请输入红球的数量: "))
blue = int(input("请输入蓝球的数量: "))

# 总球数
total = red + blue

# 计算概率
p_red = red / total
p_blue = blue / total
p_two_red = (red / total) * ((red - 1) / (total - 1))

# 输出结果,保留两位小数
print(f"抽到红球的概率: {p_red:.2f}")
print(f"抽到蓝球的概率: {p_blue:.2f}")
print(f"连续两次抽到红球的概率(不放回): {p_two_red:.2f}")

三、Cangjie 实现
package cjcDemo

import std.convert.*    // 导入用于数据转换的模块
import std.console.*    // 导入用于控制台输入输出的模块
import std.format.*     // 导入用于字符串格式化的模块

// 定义函数接收并转换用户输入为 Float64
func inputFloat(info: String): Float64 {
    print(info)
    let number: Float64 = Float64.parse(Console.stdIn.readln().getOrThrow())
    return number
}

main(): Int64 {
    let red = inputFloat("请输入红球的数量: ")
    let blue = inputFloat("请输入蓝球的数量: ")

    let total = red + blue

    let p_red = red / total
    let p_blue = blue / total
    let p_two_red = (red / total) * ((red - 1.0) / (total - 1.0))

    println("抽到红球的概率: ${p_red.format("0.2")}")
    println("抽到蓝球的概率: ${p_blue.format("0.2")}")
    println("连续两次抽到红球的概率(不放回): ${p_two_red.format("0.2")}")

    return 0
}

四、图形展示(扩展部分)

以下代码使用 Python 生成概率计算的可视化图形。本部分是进阶扩展内容,当前阶段不要求理解

from PIL import Image, ImageDraw, ImageFont

# 创建画布
img = Image.new('RGB', (600, 300), color='white')
draw = ImageDraw.Draw(img)
font = ImageFont.load_default()

# 绘制概率计算的结果
draw.text((10, 10), "抽到红球的概率: 0.62", fill="black", font=font)
draw.text((10, 50), "抽到蓝球的概率: 0.38", fill="black", font=font)
draw.text((10, 90), "连续两次抽到红球的概率: 0.36", fill="black", font=font)

# 保存图像
img_path = "probability_visualization.png"
img.save(img_path)
print(f"图形已保存为 {img_path}")

生成的图像如下:

probability_visualization.png


五、示例执行

示例 1

输入:
红球数量: 5
蓝球数量: 3
输出:
抽到红球的概率: 0.62
抽到蓝球的概率: 0.38
连续两次抽到红球的概率(不放回): 0.36

示例 2

输入:
红球数量: 2
蓝球数量: 2
输出:
抽到红球的概率: 0.50
抽到蓝球的概率: 0.50
连续两次抽到红球的概率(不放回): 0.17

六、小结

通过这道概率计算的题目,学生学习了如何运用概率公式解决数学问题,并掌握了如何在编程中实现概率的计算与逻辑思维的应用。


上一篇: 「Mac玩转仓颉内测版45」小学奥数篇8 - 排列组合计算
下一篇: 「Mac玩转仓颉内测版47」小学奥数篇10 - 数列求和

作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=392
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2256179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hhdb数据库介绍(10-45)

安全 数据加密 加密规则列表页 仅加载当前页面配置:添加、删除、编辑加密规则,触发局部同步加载。加载成功后,添加配置才能生效。同样也可以执行整体同步加载(页面右上角),来同步加密规则。 搜索&#x…

六安市第二届网络安全大赛复现

misc 听说你也喜欢俄罗斯方块? ppt拼接之后 缺三个角补上 flag{qfnh_wergh_wqef} 流量分析 流量包分离出来一个压缩包 出来一张图片 黑色代表0白色代表1 101010 1000 rab 反的压缩包 转一下 密码:拾叁拾陆叁拾贰陆拾肆 密文:4p4n5758…

深度学习入门课程学习笔记(第24周)

目录 摘要 Abstracts 一、何为决策树 1、决策树的组成 2、决策树的构建 二、基尼系数( CART 算法选用的评估标准) 三、决策树中的预剪枝处理(正则化) 1、限制决策树的深度 2、限制决策树中叶子结点的个数 3、限制决策树…

聊一聊常用类System

大家好,我是G探险者! 今天来聊一聊java常用类System。 事情的起因是项目里面使用了Jasypt 框架对配置项进行加密,主要是密码相关的配置,项目里面的application.yml有关密码的配置项,使用了占位符${PASSWORD}进行了占…

在windows系统用Anaconda搭建运行PyTorch识别安全帽项目的环境

一.背景 我期望基于开源项目实现工业场景中安全帽识别。之前的各种尝试,也不太顺利。发现安全帽识别的开源项目使用的是基于Python的PyTorch实现训练的。上一篇写了Python的安装,发现后续安装其他的并不方便。我为什么选择,下面再详细说原因。…

Elasticsearch入门之HTTP基础操作

RESTful REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在…

Unix、GNU、BSD 风格中 ps 参数的区别

注:本文为“不同风格中 ps 命令参数的区别”相关文章合辑。 未去重。 BSD 风格和 UNIX 风格中 ps 参数的区别 作者:Daniel Stori 译者:LCTT Name1e5s | 2017-06-17 10:53 One Last Question ps aux 以及 ps -elf 都是查看进程的方式&…

设计模式の单例工厂原型模式

文章目录 前言一、单例模式1.1、饿汉式静态常量单例1.2、饿汉式静态代码块单例1.3、懒汉式单例(线程不安全)1.4、懒汉式单例(线程安全,同步代码块)1.5、懒汉式单例(线程不安全,同步代码块&#…

深入理解Java的 JIT(即时编译器)

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

重生之我在21世纪学C++—关系、条件、逻辑操作符

一、关系操作符 1、关系操作符介绍 用于比较的表达式,称为 “关系表达式”(relational expression),里面使用的运算符称为 “关系运算符”(relational operator),主要有下面 6 个: 运算符描述>大于运算符,用于比…

工作:SolidWorks从3D文件导出2D的DWG或DXF类型文件方法

工作:SolidWorks从3D文件导出2D的DWG或DXF类型文件方法 SolidWorks从3D文件导出2D的DWG或2D DXF类型文件方法(一)打开3D文件(二)从装配体到工程图(三)拖出想要的角度的图型(四&#…

Spring Cloud Alibaba:一站式微服务解决方案

一、简介 Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。它集成了阿里巴巴开源的各种分布式服务技术,提供了一系列…

基于51单片机64位病床呼叫系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机病床呼叫系统设计( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0095 1. 主要功能: 基于51单片机的病床呼叫系统proteus仿…

windows10下,nvidia控制面板升级驱动后osgearth三维程序无法运行

osg系列文章目录 文章目录 osg系列文章目录一.前言二.解决办法 一.前言 windows10下,nvidia控制面板升级驱动后osgearth三维程序无法运行,情景如下: 笔者使用的是天选1笔记本,硬件配置如下 osgearth和osg对应的版本是: Osg3.4.1…

【计算机学习笔记】GB2312、GBK、Unicode等字符编码的理解

之前编写win32程序时没怎么关注过宽字符到底是个啥东西,最近在编写网络框架又遇到字符相关的问题,所以写一篇文章记录一下(有些部分属于个人理解,如果有错误欢迎指出) 目录 几个常见的编码方式Unicode和UTF-8、UTF-16、…

七种msvcp140.dll丢失的解决方法及了解msvcp140.dll丢失的原因

在Windows操作系统中,msvcp140.dll是Microsoft Visual C 2015 Redistributable Package的一部分。这个动态链接库文件对于许多应用程序的正常运行至关重要,因为它包含了C程序所需的标准库函数。当用户遇到“msvcp140.dll丢失”或类似的错误信息时&#x…

QT4和 QT5 槽函数连接的区别

正常连接方式 //QT4官方用列QLabel *label new QLabel;QScrollBar *scrollBar new QScrollBar;QObject::connect(scrollBar, SIGNAL(valueChanged(int)),label, SLOT(setNum(int)));//QT5官方用列QLabel *label new QLabel;QLineEdit *lineEdit new QLineEdit;QObject::c…

LeetCode - #152 乘积最大子数组(Top 100)

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 本题为 LeetCode 前 100 高频题 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 …

新手前端开发入职公司全流程

作为一名前端开发新手,进入一家公司开启职业生涯是既兴奋又充满挑战的旅程。今天就来和大家分享一下这个过程中的各个环节。 一、入职准备 在收到心仪公司的offer后,可别只顾着高兴啦。首先要准备好入职资料,像身份证、学历证明这些是必不可…

【深入探索 C++ STL 容器 list】 —— 编程世界的万能胶,数据结构中的百变精灵

STL系列学习参考: STL 数据结构与算法__Zwy的博客-CSDN博客https://blog.csdn.net/bite_zwy/category_12852141.html 学习C STL的三个境界,会用,明理,能扩展,STL中的所有容器都遵循这个规律,下面我们就按…