ANSI C:如何按换行符分割字符串并获得随机行
我是 C 语言的新手,并且被 subj 困住了。我可以用 strtok
分割字符串,但我不知道如何获取随机令牌。
谢谢。
I'm a new to C and got stuck with subj. I can split string with strtok
but I don't know how to get a random token.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以对其进行两次解析,然后获取一个随机数并选择一个,在同一字符串的第二遍中收集该随机数。
或者,如果您使用储层采样,则可以一次性完成此操作。
掌握水库采样将是学习 C 语言的一种非常有用的方法,可以作为学习数学的一个方面! :)
You can parse it twice, then get a random number and pick one, which you collect on the second pass of the same string.
Or, you can do it in a single pass if you use reservoir sampling.
Mastering reservoir sampling will be a very useful way of learning C as a side to learning some maths! :)
下面的伪代码显示了如何返回在字符串的标记中统一选择的候选者:
这是 Knuth 的《The Art of Computer》第 II 卷第 3.4.2 节中的算法 R 的特殊情况编程。。
The following pseudocode shows how to return a candidate uniformly selected among the tokens of the string:
This is a special case of Algorithm R from section 3.4.2 of Volume II of Knuth's The Art of Computer Programming.