写了个求一些简单概率计算的 DSL ??吧
我数学比较差,概率和排列组合题对我来说都很难。备考中发现一题:
“随机安排甲、乙、丙 3 名志愿者为某学生辅导数学、物理、化学、生物 4 门学科, 每名志愿者至少辅导 1 门学科,每门学科由 1 名志愿者辅导, 求数学学科恰好由甲辅导的概率 P 。”
我想了一会儿想不出来,于是下决心用 Ruby 写个小工具解决这些罗里吧嗦的问题。
当然这么简单的活也没多大意思。复杂一点的见这个: https://gitee.com/crella/sawdust4/blob/master/sanla/test_probab_02.rb ,它解决问题是:
样本数组 A 是有 1,2,3 中任意值组成的有 4 个元素的无序集合的非重复集合,A 的元素有:
[1, 1, 1, 1] ; [1, 1, 1, 2] ; [1, 1, 1, 3] ; [1, 1, 2, 2] ; [1, 1, 2, 3] ;
[1, 1, 3, 3] ; [1, 2, 2, 2] ; [1, 2, 2, 3] ; [1, 2, 3, 3] ; [1, 3, 3, 3] ;
[2, 2, 2, 2] ; [2, 2, 2, 3] ; [2, 2, 3, 3] ; [2, 3, 3, 3] ; [3, 3, 3, 3]
问题一:
样本数组 A 里含有多少个样本,满足以下条件任一个:
样本集合含有两个或以上的 2 或 样本集合含有相邻的 3 => 11 个
问题二:
样本数组 A 里含有多少个样本,满足以下条件:
样本集合内重复的数最多有 3 个 => 6 个
问题三:
样本数组 A 里含有多少个样本,满足以下条件:
样本集合里存在 3 个数,且其和=8 => 3 个
问题四:
样本数组 A 里含有多少个样本,满足以下条件:
样本集合里存在相邻的数 a 且 a 是奇数 => 11 个样本
想看看各位大佬对这些虽然不复杂但是很麻烦的问题有什么好的解决办法。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.