周星星 之 Blog

关注 ASM/C/C++

  VC知识库BLOG :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  128 随笔 :: 25 文章 :: 2618 评论 :: 10 Trackbacks
<2005年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

News

留言簿(45)

随笔分类

随笔档案

文章分类

文章档案

相册

相关链接

搜索

最新评论

  • 1. re: windows下最好的C++ IDE

  • 能够解决问题自然就是有用的东西,如果只在学术上讨论孰优孰劣,就像在学校的象牙塔里面的学术派!

    不管什么东西,在你身边可以获得,能够解决问题,That's Ok!

    最好的东西就是能够让大家用上手的东西,用不上的,就是纸上谈兵!
  • --holly
  • 2. MOSAIC
  • 有谁知道或者用过MOX的MOSAIC?
  • --TT
  • 3. re: 佛学佳句
  • 祝福您!南无阿弥陀佛!
    :)
  • --meiko
  • 4. [转自周星星的blog] 解决为什么wcout不能输出中文问题
  • wprintf和wcout 这篇文章应该是[netsin]的成果,我勤快,记下来。注:wprintf是C的标准库函数,但wcout不是C 的标准成员,C 中的L
  • --moonz-wu
  • 5. 将指定控件的字体加粗
  • HFONT hFont = (HFONT)::SendMessage( m_hName, WM_GETFONT, 0, 0 );
    if(hFont==0) hFont=(HFONT)::GetStockObject(SYSTEM_FONT);
    LOGFONT dtLogFont;
    ::GetObject( hFont, sizeof(dtLogFont), &dtLogFont );
    dtLogFont.lfWeight = FW_BOLD;
    hFont = ::CreateFontIndirect(&dtLogFont);
    ::SendMessage( m_hName, WM_SETFONT, (WPARAM)hFont, MAKELONG(TRUE,0) );
  • --周星星
  • 6. re: 再次随便说说,缓解一下看到此代码所带来的郁闷
  • 通常情况下。。只要tmp是被声明成为函数局部变量 就没有什么好非议的。个人更prefer第一种写法 事实上 到目前为止还是会有一些compiler可能不会优化第二种法 不能总拿gcc和vc来说事。特别是如何while中的逻辑复杂一些的话 (当然 这种情况下 似乎是不是多一条栈顶指针移动的指令 也不太重要了 但可能恶果之一是compiler会少一个可用寄存器来导致生成的代码劣化 尽管循环中的变量外提是compiler通常情况下进行代码优化的第一步。)
  • --flyingzhang
  • 7. re: ubuntu8.10安装记
  • 只是安装后敲入gcc你会很失望。。。。
    //---------------------------------------------
    装个Fedora,里面开发的东西都有了!
  • --feng9g
  • 8. re: LVS_SHAREIMAGELISTS 引发 TreeView 出现一个奇怪bug
  • LVS_xxx   ListViewStyle
    TVS_xxx  TreeViewStyle
    #define TVS_RTLREADING          0x0040
    #define LVS_SHAREIMAGELISTS     0x0040
    LVS_SHAREIMAGELISTS == TVS_RTLREADING 
  • --pcasa
  • 9. re: windows下最好的C++ IDE
  • 看了,不明白啦。我是初学到底用什么来开发?vc.net不用framework支持吗?vc6不好用吗?在vc6下的工程能在vc.net中运行吗?
  • --不懂
  • 10. lexical_cast
  • --周星星
  • 11. re: 字符串内部查找函数
  • 恩,受教了
  • --T
  • 12. from hpho:
  • --周星星
  • 13. re: 目录监测(windows)
  • 非常感谢!但是有一个问题:就是我如何在一个线程中同步的监控多个文件夹?我不想使用太多线程……
  • --quantity
  • 14. re: 使用_alloca的一个Demo
  • 嗯,如果“这项技术非常适合这个需求”的话,那么与
    Test t1;
    t1.print();
    这样相比,它有什么优势呢?
  • --nosound
  • 15. re: 【暂存】不合理,但VC8能编译通过的代码
  • --wuqing
  • 16. 存照,待4年后看此两女大脑是不是还不正常
  • --周星星
  • 17. re: VS&G++ 重载operator delete的bug
  • --scu319hy
  • 18. 自创
  • 中国人的习惯是吃完了饭再付帐;洋人的习惯是先付帐后吃饭。
    于是餐馆老板想出了一个办法:
        与国际接轨:吃饭前先把饭钱付了;
        适应中国国情:吃完饭后付一次帐。
    这样一顿饭就可以收两次钱了。
  • --周星星
  • 19. re: windows下最好的C++ IDE
  • # re: windows下最好的C++ IDE 2008-05-18 14:58 xuebuyu 
    我试了最简单的程序,譬如只有一个std::cout << ..., printf (...), 发现vc2005产生的debug版本不能在没有.net framework下运行,而release可以
    ---------------------------------------------------------------------------
    debug版本也不需要的,可能是因为manifest文件的问题
  • --joe
  • 20. re: VS2005/VS2008 中64位数据引起的一个严重bug
  •  将 *(__int64*)(str+1) = *(__int64*)(str+0); 分解为
    *(__int32*)(str+5) = *(__int32*)(str+4);
    *(__int32*)(str+1) = *(__int32*)(str+0);
    就OK了

    看来关于__int64的赋值,编译的代码要根据两个变量地址来决定分解为两个__int32的操作的顺序
  • --mslk
  • 21. re: 网摘
  • 可惜中国人但对于羊显凶兽相,而对于凶兽则显羊相,所以即使显着凶兽相,也还是卑怯的国民。这样下去,一定要完结的。
    --- 《鲁迅警世名言录》
  • --周星星
  • 22. re: windows下最好的C++ IDE
  • 我在VC6.0里装了ICC,能正常使用.之前类模板的局部特化现在能编译通过了.但是在类声明里对静态数据成员初始化还是编译不过啊??
  • --keke
  • 23. re: 网摘
  • --周星星
  • 24. 自创
  • 两兄弟A和B,特穷,大哥A每次都忍饥挨饿却把B喂饱。
    长大后A瘦得像根杆,风一吹就倒;B却发育得很好,连吹3天牛屄也不累。

    B:A那家伙就是基因不好,人品不好,好吃懒做……,所以我现在身强力壮,他却赢弱得很,满身是病,快挂了。拖我家后腿呀!
    A:如果不是当年我把吃的留给你,你小子能油光满面,脑满肠肥,而我能在发育期间饿得营养不良,现在快挂了吗?
    B:当年我吃了你多少,现在我10倍还给你,看你能不能变得和我一样强壮?
    A:<气死了>
  • --周星星
  • 25. 杨辉三角(随便写的,估计有更好的写法)
  • --周星星
  • 26. to allenm:
  • 谢谢大虾。

    “为什么用wubi安装而不是直接硬盘安装呢?”
    ------ 一来需要分区,有些麻烦;二来8.10有bug,硬盘安装时无法分区,google了一下,可行的方法有:
    a. 用光盘安装
    b. 把启动文件放另一块硬盘,或U盘上。(a的原理其实和这个一样)
    c. 到分区时,先反挂载ISO所在分区
  • --周星星
  • 27. re: ubuntu8.10安装记
  • 囧,刚才没有看完你的文章就发评论了,现在发现很多我说的你已经解决了,另外说明一下你貌似还没有解决的上GTALK和MSN的问题吧,用系统自带的pidgin就可以了,这两个都可以上的,另外QQ也可以上,如果不可以上的话你可以去腾讯官网下载DEB包。
  • --allenm
  • 28. re: ubuntu8.10安装记
  • 你是刚开始用Ubuntu吧,其实这个很好用的,只是刚开始的时候你还不太适应罢了,为什么用wubi安装而不是直接硬盘安装呢?可以装个双系统啊,而且Ubuntu带的grub会直接找到你的windows分区,启动的时候可以选择。因为cd盘容量比较小,所以带的简体中文语言实际上是不完全的,你现在也打不出中文吧,你可以在系统设置里面找到语言设置选项,选择简体中文,然后会提示你安装语言包,用系统自带的新力得更新工具就可以了。更新完后设置一下SCIM输入法就可以打出中文了。另外国内的比较好的源有cn99,这个据说速度比较快
  • --allenm
  • 29. Wicd
  • http://www.lirui.name/post/134.html
  • --周星星
  • 30. re: ubuntu8.10安装记
  • 阿帮兔的口碑还不错滴。
    只是安装后敲入gcc你会很失望。。。。
  • --HateMath
  • 31. re: ubuntu8.10安装记
  • 根据 http://tech.ddvip.com/2008-06/121290441645303.html 制得后的对比

  • --周星星
  • 32. re longinus:
  • 谢谢,现在终于成功了,不知不觉间我牙齿都咬出血了:)
  • --周星星
  • 33. re: ubuntu8.10安装记
  • 分区的问题我一个朋友也遇到了,当时也没解决,可能是硬盘驱动的问题

    不过他后来装opensuse了……
  • --longinus
  • 34. Intel之CMOV等价指令
  • --周星星
  • 35. re: 暂存
  • --周星星
  • 36. re: windows下最好的C++ IDE
  • 个人感觉作为C++程序员不要太拘泥于工具,还是专注一下语言本身的东西,而且我根据自身的项目经验,发现很多企业都逐渐开始跨平台的开发,可见跨平台是大势所趋,所以对自身的发展还是专注对语言本身和各种跨平台标准库的学习和使用。
  • --Wing
  • 37. 顺便问问LZ一个相关的问题
  • 如果一段代码里执行了很多循环
    foo()
    {
       for(i=0;...){}
       for(i=0;...){}
       ...
     }
    这时那种代码更合理呢? 偶个人感觉适合把int i;定义到循环外似乎更好些,不知对否?
  • --假骑士
  • 38. re: 再次随便说说,缓解一下看到此代码所带来的郁闷
  • 代码二的好处是循环后,变量temp就可以消失了。
    重复定义的问题,其实循环内,temp一直存在,不存在重复定义的问题。
    另,实测了一下,这两段代码在VC++6里面的时间效率基本一致。
  • --假骑士
  • 39. re: 编译期时立即数溢出
  • --100000
  • 40. re: 实时数据库的简介(初稿)
  • 杨,你好:

       能不能告知 PI软件的价格体系。
  • --Xian
  • 41. re: 疑难
  • 怎么做可以为众生带来最大的利益?
  • --向月
  • 42. re: 编译期时立即数溢出
  • 老大,你的这些问题,都是怎么发现的啊,是会程序的bug中吗,觉得你真牛B
  • --ricardo
  • 43. re: [zdd]的一道题
  • --jjnet
  • 44. re: 再次随便说说,缓解一下看到此代码所带来的郁闷
  • 其实这根本就没有意义,只是个人风格不同而已,对此我既不反对也不赞同星星的说法.

    例子:我喜欢将花摆在门边外面(左面),老婆喜欢把花摆在门边里面(右面).一好事之人,非要对此指指点点,一笑而置之不理!
  • --非法用户
  • 45. re: 佛学佳句
  • 南无阿弥陀佛!  ^_^
  • --meiko
  • 46. re: windows下最好的C++ IDE
  • 各位有听说过C-Free吗?国人的作品。

    我觉得还是很不错的,它能够支持很多种编译器,VC或者GCC等都可以。目前最新好像是4.0版.
  • --allen
  • 47. re jeffer:
  • :)避开VC的bug是一回事,VC有没有这个bug是另一回事。
  • --周星星
  • 48. re Dark:
  • your are right, thanks
  • --周星星
  • 49. re: VS2005/VS2008 中编译流程的一个严重bug
  • 试了一下,DEBUG方式编译是错了,但是Release编译倒是正确的
  • --Dark
  • 50. re: **
  • --jeffer
  • 51. re jeffer:
  • 每个人第一眼看到这代码自然会如你这样想,我一开始也认为是“未定义”行为。
    不过仔细对比一下,*(__int64*)(str+0) 对operator= 而言是个值,因此根本不存在所谓的重叠。

    如果不想被*(__int64*)(str+0)迷住了眼,那么写成
    __int64 tmp = *(__int64*)(str+0);
    *(__int64*)(str+1) = tmp;
    在VS200X的release下同样输出错误数据。
  • --周星星
  • 52. re: VS2005/VS2008 中64位数据引起的一个严重bug
  • 精典的搬石頭砸到自己 , 當來源和目標重叠.
    不能稱為bug, 這算是 沒定義, 寫碼自己要避免
    就好比
       memcpy( src , src+4 , 5);
       memcpy( src+4 , src , 5);
  • --jeffer
  • 53. 给ms发一个bug report吧
  • rt
  • --局部变量
  • 54. 求M数中取N数的排列组合
  • --周星星
  • 55. re: 计算24点的小程序(更新版)
  • 您好,我想请问一下24点的算法原理。是否能详细讲解一下,谢谢!
  • --妮妮
  • 56. re: 网摘
  • 1956年12月18日,国务院曾发出《关于今后在行文中和书报杂志里一律不用“满清”的称谓的通知》。通知原文如下:

    “满清”这个名词是在清朝末年中国人民反对当时封建统治者这一段历史遗留下来的称谓。在目前我国各民族已经团结成为一个自由平等的民族大家庭的情况下,如果继续使用,可能使满族人民在情绪上引起不愉快的感觉。为了增进各民族间的团结,今后各级国家机关、学校、企业,各民主党派,各人民团体,在各种文件、著作和报纸、刊物中,除了引用历史文献不便改动外,一律不要用“满清”这个名称。(见1986年南京大学出版社出版的《统一战线工作手册》)
  • --周星星
  • 57. szj 求助GDI+
  • Image image( L"D:\\boy3.jpg" );
    参数用CString strFilePath来代替怎么写
  • --szj
  • 58. re: [zdd]的一道题
  • 我觉得并不是return造成的。return的时候有一个析构是正常的。多出来的析构是在参数传递的时候多出来的。
    我猜想,没有copy constructor的时候

    foo(A()) 等价于 A a; foo(a);
  • --Justin Shen
  • 59. re: 取浮点数的整数部分(确实有点无聊,不喜欢就召回删除)
  • double a = 6.7f;
    double b = a * 10;
    int c = a * 10;
    int d = b;

    printf( "%d", c ); // 输出 67
    printf( "%d", d ); // 输出 66

    如果是double的刚好相反也。
  • --re: 取浮点数的整数部分
  • 60. re: 实时数据库的简介(初稿)
  • 谁有WPKS安装说明?
  • --YangJun

阅读排行榜

评论排行榜

上次给的公式是错的,这次的公式是验证过的,绝对不会再错 ^_^。
a. 50个人可能的生日组合是365*365*365*……*365(共50个)个。
b. 50个人生日都不重复的组合是 365*364*363*……*316(共50个)个。
c. 50个人生日有重复的概率是 1 - a/b

代码如下:
#include <iostream>
#include <cstdlib>
using namespace std;

unsigned int N = 50;
unsigned int M = 365;

int main()
{
    long double p = 1.0;
    for( unsigned int i=0; i<N; ++i )
        p *= (1-(double)i/M);
    p = 1-p;

    cout << p << endl;

    system( "PAUSE" );
    return 0;
}

输出结果是:0.97

但可惜long double也不足够精确,所以我将M改为3,N改为0,1,2,3,4,5做测试,结果和实际一样
0/3几率是 0
1/3几率是 0
2/3几率是 1/3
3/3几率是 7/9
4/3几率是 1
5/3几率是 1

posted on 2005-01-07 23:17 周星星 阅读(8260) 评论(29)  编辑 收藏

评论

# re: 50个人中有相同生日的概率是97% 2005-01-08 04:32 廖谦
概率确实蛮高的,我认识的人中就有4个和我一天

# o 2005-01-08 05:14 紫水晶
.......

# re: 50个人中有相同生日的概率是97% 2005-01-08 10:11 问题男
没考虑闰年

# re: 50个人中有相同生日的概率是97% 2005-01-09 10:53 bayes
这到是个经典的概率题目,往往用来说明你的感觉是极不可靠的。。。
我原来算过,23人就可以超过1/2的概率保证有人生日相同,呵呵!这个很多人也没想到!


# re: 50个人中有相同生日的概率是97% 2005-01-12 11:16 ishou
我用超级精度软件 (小数点后无失真记录到38位) 计算得到的结果如下:

0.97037357957798839991865520436840386588


# re: 50个人中有相同生日的概率是97% 2005-01-12 11:32 ishou
23人 时的概率是:
0.50729723432398540722541722833703250025

30人 时的概率是:
0.70631624271926865995623965867730366181

35人 时的概率是:
0.81438323887471523275939529078225043834

41人 时的概率是:
0.90315161148173540173928850723367156802


# re: 50个人中有相同生日的概率是97% 2005-01-12 11:39 ishou
221人 时的概率是:
0.99999999999999999999999999999999999999

# re: 50个人中有相同生日的概率是97% 2005-01-12 13:28 上海岁月
不会这么高吧

# re: 50个人中有相同生日的概率是97% 2005-01-17 03:07 老鼠爱大米在线试听欣赏
我不当相信哟!!!!!!

# to 老鼠爱大米在线试听欣赏: 2005-01-17 04:49 周星星
其实几率比这个高多了,因为很多人喜欢选择季节时日等。

# re: 50个人中有相同生日的概率是97% 2005-02-19 13:58 SEXMAN
吹,在吹

# re: 50个人中有相同生日的概率是97% 2005-02-20 18:45 四不象
>我不当相信哟!!!!!!

高中数学书里就有这道题了,难道你高中都没毕业?

# re: 50个人中有相同生日的概率是97% 2005-03-15 23:27 oo
大学里面的概率统计,有这样的题,说一个60人的班里,2人生日相同的概率几乎为1
50人,那也差不了多少。。。。。。。。。

# re: 50个人中有相同生日的概率是97% 2005-03-15 23:43 oo
你算出来的数是对的

但是

c. 50个人生日有重复的概率是 1 - a/b

这个地方是错的阿。。。

应该是1-b/a

a才是总的样本空间

# re: 50个人中有相同生日的概率是97% 2005-03-20 20:19 超圣水
这个好象是几年前某一期《科幻世界》里的故事

# re: 50个人中有相同生日的概率是97% 2005-03-24 12:42 TTYang
想一下你读书的时候,基本上每个班的人就这么多
但是相同生日的有多少?

# re: 50个人中有相同生日的概率是97% 2005-04-14 17:36 jerryren
相同生日的是不少的了。是不是有人理解成同年同月同日啦?那是很少了。但是生日相同还是很多的。

# re: 50个人中有相同生日的概率是97% 2005-04-30 22:45 作文
还没找到同一天生的呢

# re: 50个人中有相同生日的概率是97% 2005-05-17 09:49 smcree
没有考虑闰年,如果把闰年考虑进取,答案就不一样了

# re: 50个人中有相同生日的概率是97% 2005-05-25 15:39 xiaosir
当然是正确的拉,自己算算嘛

# re: 50个人中有相同生日的概率是97% 2005-05-28 19:19 paolo
闰年怎么算啊?是不是(1-366*365*......*317/366*366.....*366)*0.25+(1-365*364*......*316/365*365.....*365)*0.75?请高手赐教啊! 


# re: 50个人中有相同生日的概率是97% 2005-06-06 20:40 Michael
考虑闰年情况,
http://blog.vckbase.com/michael/archive/2005/06/06/6168.html

# re: 50个人中有相同生日的概率是97% 2005-06-07 15:15 阵雨
c. 50个人生日有重复的概率是 1 - a/b
错了,应该是 c. 50个人生日有重复的概率是 1 - b/a



# re: 50个人中有相同生日的概率是97% 2005-06-22 11:50 kaikai
不过50人中有与你相同生日的就只有12.8%了...

# to kaikai: 2005-06-22 12:13 周星星
不错,前面有几个人理解错了,但我有意没指出来,哈哈!

# re: 50个人中有相同生日的概率是97% 2005-07-20 09:22 fatpenguin
哈哈,之前我也理解错了。原来应该是364 364 364......

# re: 50个人中有相同生日的概率是97% 2005-07-30 23:52 fankoo
这样的数学模型还有很多。。
例如将n个球放到N(N>=n)个盒子中,求每个盒子至多有一个球的概率。

# re: 50个人中有相同生日的概率是97% 2005-09-01 19:24 无锡战神
原来如此!多谢!

# re: 50个人中有相同生日的概率是97% 2005-11-10 21:22 灵敏
50个人中有2个人的生日相同的概率是0.97吗?

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]