注册 登录
编程论坛 C++教室

X,Y,Z为0和1之间的均匀分布的三个数,什么情况下可以实现x+y+z>1?

vxlo 发布于 2015-10-24 11:16, 1197 次点击
各位:

  首先我不是编程人员,所以可能大家看似简单的题目对于我来说一点也不会。我表妹大学课题需要下面两个小程序,所以我来请教各位帮忙

题目一:

输入10个100以内的整数,输出里面所有的质数

题目二:

X,Y,Z为0和1之间的均匀分布的三个数,什么情况下可以实现x+y+z>1? (原题目为:x,y,z have a uniform distribution between 0 and 1. What's the probability that x+y+z>1?

恳请各位帮忙解答一下  谢谢啦
8 回复
#2
vxlo2015-10-24 11:38
程序有问题 还是得需要各位的帮忙

[此贴子已经被作者于2015-10-24 12:47编辑过]

#3
rjsp2015-10-24 13:09
第一个问题,要想效率最高,开一个101长的数组,是质数的填1,不是的填0。此后你将需要判断的数 作为下标直接去数组中查询就行了。

第二个,求几率是数学题。你在xyz坐标系统上画一个立方体,再画出x+y+z=1的面,原来它就是一个切去了立方体一个角的截面。这个切下来的角的体积是s=1/3*1/2=1/6,所以x+y+z>1的几率是5/6。
#4
vxlo2015-10-24 21:24
回复 3楼 rjsp
多谢版主支持白丁的我。不过我不是编程人员,代码对于我来说互不认识。所以恳请帮忙帮忙写一下好吗?
#5
rjsp2015-10-25 01:16
回复 4楼 vxlo
要我写的话,只能星期一了,身边没电脑
#6
vxlo2015-10-25 09:15
回复 5楼 rjsp
那谢谢版主了。不过周一一早就得交作业了。来不及了。
#7
rjsp2015-10-25 15:49
回复 6楼 vxlo
那你只能找别人了,我没电脑。
另外,我写的代码,估计你老师不认。
#8
vxlo2015-10-25 16:08
回复 7楼 rjsp
没关系的版主。我还是要谢谢你的 :) 毕竟我不是编程人员,所以这些我是一点不会 哈哈
#9
rjsp2015-10-26 10:54
以下是引用vxlo在2015-10-25 16:08:07的发言:

没关系的版主。我还是要谢谢你的 :) 毕竟我不是编程人员,所以这些我是一点不会 哈哈
程序代码:
#include <iostream>
#include <bitset>

int main( void )
{
    std::bitset<100+1> bitmap;
    {
        bitmap.set();
        bitmap.set( 0, false );
        bitmap.set( 1, false );
        for( size_t i=2; 2*i<bitmap.size(); ++i )
        {
            for( size_t j=2*i; j<bitmap.size(); j+=i )
                bitmap.set( j, false );
        }
    }

    using namespace std;
   

    for( size_t i=0, n; i!=10 && cin>>n; ++i )
    {
        if( bitmap.test(n) )
            cout << n << '\n';
    }
    cout.flush();

    return 0;
}
输入
0 1 2 3 4 100 99 98 97 96
输出
2
3
97





1