2021-10-24 我的第五次java作业:二项分布和双骰子赌博问题

article/2025/9/17 14:54:21

我的第五次java作业

题目:

二项分布是n次独立试验中成功次数k的离散概率分布,其中每次试验成功的概率为p。利用Java Math类中提供的数学函数,给出二项分布X~B(n, p, k)的实现代码并进行测试。例如,当用户给定n=20, p=0.1, k=5的概率应为0.03192136。

代码

package calculation;
import java.math.BigDecimal;
import java.util.Scanner;
public class calculation {public static void main(String[] args){Scanner sc=new Scanner (System.in);System.out.println("请一次输入n.k.p");int n=sc.nextInt();int k=sc.nextInt();double p=sc.nextDouble();double result=(factorial(n)/(factorial(k)*factorial(n-k)))*(Math.pow(p, k))*(Math.pow((1-p), n-k));double A=(factorial(n)/(factorial(k)*factorial(n-k)));//System.out.println(Math.pow(p, (n-k)));//System.out.println(Math.pow((1-p), k));BigDecimal finalresult=new BigDecimal(result);String ii=finalresult.toPlainString();System.out.println(ii);//解决的问题是如何将double类型的结果的科学记数法表示形式转化为小数,sc.close();}public static long factorial(int n)//阶乘函数{long result=n;for(int i=n-1;i>=1;i--){result=result*i;}return result;}}

实验截图

问题与收获思考:

实验1:没有解决的问题是最后的结果保留小数的位数问题;
解决的问题是如何将double类型的结果的科学记数法表示形式转化为小数,运用了

import java.math.BigDecimal;
BigDecimal finalresult=new BigDecimal(result);
String ii=finalresult.toPlainString();
System.out.println(ii);

题目:

在这里插入图片描述

代码

package crap;public class crap {public static void main(String []args){System.out.println("这是胡竞文(201911030235)的java作业");System.out.println("现在开始掷骰子");int firstround=play();if(firstround==2 ||firstround==12||firstround==3){System.out.println("you lose");}else if(firstround==7 ||firstround==11){System.out.println("you win");}else {System.out.println("point is"+firstround);int nextround=0;nextround=play();while(nextround!=firstround && nextround!=7)//就是这个地方出现了问题,要注意java中的循环不能好多个if后加else,可以用考虑用while循环改写{nextround=play();}if(nextround==7) {System.out.println("you lose");}else if(nextround==firstround) System.out.println("you win");}}public static int play(){int result=0;int num1=(int)Math.ceil( 6*Math.random());int num2=(int)Math.ceil( 6*Math.random());result=num1+num2;System.out.println("you roled"+num1+"+"+num2+"="+result);return result;}}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题与收获思考:

对于循环问题,我觉得最后这一句代码特别值得注意,

while(nextround!=firstround && nextround!=7)

一开始我写成了for循环

for(i=1; nextround==firstround ||nextround==7;i++)

但其实这个有多个错误,第一个错误是我应该用!=而不是==,终止条件的意思是当循环满足这个条件的时候会继续循环,不满足这个条件了才会挑出来,再一个,这个循环用while更好,i在里面没有起作用。再一个,我用错了符号,不应该用||,而应该用&&,因为两个判断条件都是否定,应该两个都不满足才在循环里,如果用||就表示两个中的任意一个满足或者都不满足就会继续循环,然而两个都不满足是一定的,所以就会一直在循环里,就造成了一开始无限循环的错误结果了。


http://chatgpt.dhexx.cn/article/4vJiaKBv.shtml

相关文章

记一次使用Cobar踩到的坑

起因 起因是因为日志里经常报出锁等待超时的错误,并且这个是环环相扣的,一个锁等待会直接引发另外的锁等待,所以危害非常严重,影响非常深远。寻找原因发现是C3P0报出了DEADLOCK,如下图所示: 分析 可以…

Cobar介绍及配置

原文地址为: Cobar介绍及配置 from:http://code.alibabatech.com/wiki/display/cobar/Home Skip to end of metadata Page restrictions applyAttachments:1Added by kimi Lv, last edited by 邱 硕 on 十月 18, 2012 (view change) Comment: Go to st…

用cobar搭建分布式数据库

周末针对最新的项目需求进行cobar的搭建并针对实际状况做了demo演示 一、需求 1、大数据量,邮件发送记录需要记录,一年可能累计4亿的数据 2、需要按照邮箱进行邮件发送明细的查询以及发送记录的查询 二、问题 1、单库分表分区已经解决不了存储以及查…

用cobar搭建分布式数据库 .

周末针对最新的项目需求进行cobar的搭建并针对实际状况做了demo演示 一、需求 1、大数据量,邮件发送记录需要记录,一年可能累计4亿的数据 2、需要按照邮箱进行邮件发送明细的查询以及发送记录的查询 二、问题 1、单库分表分区已经解决不了存储以及查…

开源的分布式数据库中间件系统Mycat和阿里巴巴Cobar的对比

mycat 不得不说的缘分 原创 2016年04月15日 15:48:17 27834 1,愕然回首,它在灯火阑珊处 关于mysql集群中间件,以前写在应用程序里面,由开发人员实现,在配置文件里面写多个数据源,写库一个数据源&#xff0…

分布式数据中间件TDDL、Amoeba、Cobar、MyCAT架构比较

框架比较 TDDL Amoeba Cobar MyCat 点评 TDDL不同于其它几款产品,并非独立的中间件,只能算作中间层,是以Jar包方式提供给应用调用。属于JDBC Shard的思想,网上也有很多其它类似产品。 另外,网上有关于TDDL的图&#x…

TDDL、Amoeba、Cobar、MyCAT架构比较

布式数据库中间件TDDL、Amoeba、Cobar、MyCAT架构比较分 比较了业界流行的MySQL分布式数据库中间件,关于每个产品的介绍,网上的资料比较多,本文只是对几款产品的架构进行比较,从中可以看出中间件发展和演进路线 框架比较 TDDL Am…

Cobar使用文档(可用作MySQL大型集群解决方案)

转:http://blog.csdn.net/shagoo/article/details/8191346 最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家。Cobar是阿里巴巴研发的关系型数据的分布式处理系统&am…

Cobar的架构与实践

Cobar是提供分布式数据库服务的中间件,是阿里巴巴B2B前台应用访问数据库的统一入口。本文讲述的就是Cobar的架构演变与应用实践。 2008年,阿里巴巴B2B成立了平台技术部,为各个业务部门的产品提供底层的基础平台。这些平台涵盖Web框架、消息…

alibaba的COBAR真是强大.

最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家。Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目…

Alibaba的COBAR真是强大

 最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家。Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的…

Cobar Client的使用

cobar client是出自阿里的产品,cobar client只需要引入jar包即可,不需要建立服务。下面的地址是cobar client的帮助文档 http://code.alibabatech.com/docs/cobarclient/zh/ http://www.kuqin.com/system-analysis/20120212/318089.html 分库分表都…

Cobar介绍

概述 Cobar是关系型数据的分布式处理系统,它可以在分布式的环境下看上去像传统数据库一样为您提供海量数据服务。 产品在阿里巴巴B2B公司已经稳定运行了3年以上。目前已经接管了3000个MySQL数据库的schema,为应用提供数据服务。据最近统计cobar集群目前…

[存储] Cobar使用文档(可用作MySQL大型集群解决方案)

最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家。Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目…

Linux nohup命令用法详解

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前…

Linux nohup 命令

1.简介 nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文…

【nohup】nohup命令的简单使用

文章目录 1 nohup时2 nohup后 1 nohup时 执行下方命令后,将 标准输出(1,默认可不写)、错误信息(2) 写入到 output.log 文件中。 nohup python train.py >output.log 2>&1 & nohup hb_mapper makertbin -c xx.yaml --model-type onnx 2&g…

【学习笔记】Windows 下线程同步之互斥锁

目录 前言环境简介相关函数CreateMutexWait 函数ReleaseMutexCloseHandle 其他互斥锁的名字未命名互斥锁的同步互斥锁的意外终止临界区对象 示例参考 前言 本文所涉及的同步主要描述在 Windows 环境下的机制,和 Linux 中的同步机制有一定的联系,但注意并…

C++——互斥量

文章目录 一、基本知识二、独占互斥量mutex1.mutex的介绍2.mutex的成员函数3.实例演示 三、lock_guard和unique_lock的使用和区别四、递归互斥量recursive_mutex1.基本知识2.演示示例 五、带超时的互斥量std::timed_mutex和std::recursive_timed_mutex 一、基本知识 C11提供如…

Linux——什么是互斥与互斥锁

目录 一.前提:临界区 & 临界资源 二.什么是互斥 (一).互斥概念 (二).为什么需要互斥 三.互斥锁介绍 (一).互斥锁的概念 (二).互斥锁的使用 ①系统API接口 ②…