一道统计约瑟夫斯问题求解解

一道简单的概率计算问题
确实不难,只是自己脑袋短路了,不会算了…
设有一个摇珠抽奖的小游戏,每次从5个号码球之中随机抽出3个,现在问题是,我在某次摇珠之前,押了4个号码,问,恰好命中当次摇出的(3个号码之中)2个号码的概率是多少?
麻烦懂的朋友给出详细的解题过程,注意,不是要编程,也不要代码,是要解题过程,纯数学的,谢谢
C(4,2)/C(5,3) ? 不确定,好几年没做数学题了,记不清了
关于伯乐小组
这里有好的话题,有启发的回复和值得信任的圈子。
新浪微博:
推荐微信号
(加好友请注明来意)
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- UI,网页,交互和用户体验
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2016 伯乐在线共有 677 人关注过本帖
标题:新手上路,求解一道关于单词统计的问题
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:8&&&
新手上路,求解一道关于单词统计的问题
原题是这样的
/*从键盘输入一串英文,编程统计字符串中英文单词的个数。并按出现频次升序排序显示每个单词出现的次数*/
可我只会前面的统计总的单词数量,我想到要用结构体,但不会如何将输入的单词放入结构体中,
求论坛内的大神们教教我,谢谢。
#include &stdio.h&
#include &string.h&
//定义total函数计算总的单词个数
total(char str[])
&&& int sum=0,i;
&&& for(i=0;str[i]!='#';i++)
&&&&&&&&if((str[i])==' '||(str[i])==','||(str[i])=='.'||(str[i])=='?'||(str[i])=='!')
&&&&&&&&&&&&sum++;
&&& printf(&total=%d\n&,sum);
&&& return(sum);
/*定义结构体word内存放单词和个数*/
struct wordcount
&&&&&&&&char str1[20];
&&&&&&&&int strC;
void main()
&&& char str[1000];
&&& printf(&输入一串英文:\n&);
&&& gets(str);
&&& total(str);
搜索更多相关主题的帖子:
&&&&&&&&&&
来 自:中石大
等 级:论坛游侠
帖 子:57
专家分:190
假如你要输入10个单词,就声明下wordcount word[10];
然后for(i=0;i&10;i++){gets(word[i].str1)}
#include &stdio.h&
#include &string.h&
struct wordcount
&&&&&&&&char str1[20];
&&&&&&&&int strC;
void main()
&&& printf(&输入一串英文:\n&);
&&& wordcount word[2];
&&& for(i=0;i&2;i++){
&&&&&&&&gets(word[i].str1);
&&&puts(word[0].str1);
}//这个是输入两个单词,先输入一个单词,按回车,再输入一个单词按回车,之后打印第一个单词,你仿照下
我们的善良将助长一个孩子不劳而获的懒惰心理
等 级:蝙蝠侠
帖 子:178
专家分:738
单词数量没法固定,可以声明一个较大的结构体数组来存储,或者动态创建一个链表的方式来存储比较好
等 级:职业侠客
帖 子:74
专家分:335
没做完strcmp部分,晚上做完了再传。
[ 本帖最后由 comewest 于
14:07 编辑 ]
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
链表的查询效率那么低,用链表做不是好主意,除非你另外做出高效查询的链表结构。
授人以渔,不授人以鱼。
等 级:蝙蝠侠
帖 子:178
专家分:738
回复 5楼 TonyDeng
那请教下T版,除了链表的方式,还有什么方式较适合动态增加的?
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
单词量少,直接用数组做咯,其实用动态分配内存在堆上开辟一个足够大的数组也可以。真正适应动态增加的模型,在C中比较麻烦,但在C++中可以用标准类库vector,效率非常高,它妙在可以与数组一样的用法而不失链表的方便。总之,如果守着C,真是什么都比较麻烦的,若是非要练手,当然也可以一试,不过在实用中,我是不会再费这劲了。
授人以渔,不授人以鱼。
等 级:蝙蝠侠
帖 子:178
专家分:738
回复 7楼 TonyDeng
哦 谢谢!C++目前只是自学了下基础,没应用过还不太清楚
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
自己补充排序部分吧:
程序代码:
http://bbs.bccn.net/thread--1.html
题目:从键盘输入一串英文,编程统计字符串中英文单词的个数。并按出现频次升序排序显示每个单词出现的次数
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
#include &conio.h&
// 数据结构
struct WordItem&&&&&&&&&&&&&&&&&&&&&&&& // 字典项目
&&& char word[<font color=#];&&&&&&&&&&&&&&&&&&&&& // 单词
&&& size_&&&&&&&&&&&&&&&&&& // 出现频率
// 全局常数
const size_t MaxWordsNumber = <font color=#0;&&&&&// 最大单词数目
const char* seps = & .,()*%!'\&\n&;
// 函数原型
void Pause(void);
void ReadWords(char* text, const char* seps, WordItem* dictionary);
void ListDictionary(const WordItem* dictionary, size_t count);
size_t FindWord(const char* word, const WordItem* dictionary, size_t count);
// 程序主入口
int main(void)
&&& char text[] = &vb. To translate all the source code of a program from a high-level language into object code prior \
&&&&&&&&&&&&&&&&&& to execution of the program. Object code is executable machine code or a variation of machine code. \
&&&&&&&&&&&&&&&&&& More generally, compiling is sometimes used to describe translating any high-level symbolic description \
&&&&&&&&&&&&&&&&&& into a lower-level symbolic or machine-readable format. A program that performs this task is known as \
&&&&&&&&&&&&&&&&&& a compiler. See also compiler (definition <font color=#), compile time, high-level language, machine code, source \
&&&&&&&&&&&&&&&&&& code. Compare interpret.&;
&&& WordItem* dictionary = (WordItem*) calloc(MaxWordsNumber, sizeof(WordItem));
&&& ReadWords(text, seps, dictionary);
&&& ListDictionary(dictionary, MaxWordsNumber);
&&& free(dictionary);
&&& Pause();
&&& return EXIT_SUCCESS;
// 暂停程序等待按键继续
void Pause(void)
&&& printf_s(&\nPress any key to continue...&);
&&& _getch();
// 输出字典数组明细
void ListDictionary(const WordItem* dictionary, size_t count)
&&& for (size_t index = <font color=#; (index & count) && (strlen(dictionary[index].word) & <font color=#); ++index)
&&&&&&&&printf_s(&%s, %u\n&, dictionary[index].word, dictionary[index].frequency);
// 从字符串中提取单词构造字典数组
void ReadWords(char* text, const char* seps, WordItem* dictionary)
&&& char* nextT
&&& char* token = strtok_s(text, seps, &nextToken);
&&& while (token != NULL)
&&&&&&&&size_t index = FindWord(token, dictionary, MaxWordsNumber);
&&&&&&&&if (index & MaxWordsNumber)
&&&&&&&&&&&&strcpy_s(dictionary[index].word, _countof(dictionary[index].word), token);
&&&&&&&&&&&&++dictionary[index].
&&&&&&&&token = strtok_s(NULL, seps, &nextToken);
// 从字典数组中查找指定的单词,若存在则返回其在字典数组中的下标,否则返回末尾下标
size_t FindWord(const char* word, const WordItem* dictionary, size_t count)
&&& for (index = <font color=#; (index & count) && (strlen(dictionary[index].word) & <font color=#); ++index)
&&&&&&&&if (strcmp(dictionary[index].word, word) == <font color=#)
&&&&&&&&&&&&break;
&&& return
授人以渔,不授人以鱼。
版权所有,并保留所有权利。
Powered by , Processed in 0.022907 second(s), 6 queries.
Copyright&, BCCN.NET, All Rights Reserved高中物理 COOCO.因你而专业 !
你好!请或
使用次数:34
入库时间:
在解一道文字计算题中(由字母表达结果的计算题),一个同学解得x=(t1+t2),用单位制的方法检查,这个结果(  )
A.可能是正确的
B.一定是错误的
C.如果用国际单位制,结果可能正确
D.用国际单位制,结果错误,如果用其他单位制,结果可能正确
解析:选B.可以将右边的力F、时间t和质量m的单位代入公式看得到的单位是否和位移x的单位一致;还可以根据F=ma,a=v/t,v=x/t,将公式的物理量全部换算成基本物理量的单位,就好判断了.
在x=(t1+t2)式中,左边单位是长度单位,而右边单位推知是速度单位,所以结果一定是错误的,单位制选得不同,不会影响结果的准确性,故A、C、D错.
如果没有找到你要的试题答案和解析,请尝试下下面的试题搜索功能。百万题库任你搜索。搜索成功率80%* 您要为您所发的言论的后果负责,故请各位遵纪守法}

我要回帖

更多关于 约瑟夫斯问题求解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信