每日三思(4月23日)

每日三问(4月23日)

问题一:非线性数据结构有什么?怎么用?

1
2
3
4
set                             set1 = { 1,3,5 };                                             //有序不重复
multiset multiset<int> set2 = { 1,3,5,1,3,5 }; //有序可重复set<int> set1 = { 1,3,5 };
unordered_set unordered_set<int> set3 = { 2,4,6 }; //无序不重复
unorsered_multiset unorder_multiset<int> set4 = { 2,4,6,2,4,6 }; //无序可重复

1. 增

1
2
3
set1.insert(2);               无法插入

set2.insert(2); 可以插入

2. 删

1
2
3
set1.erase(1);                 只删除了1

set2.erase(1); 全部的1都被删除了

3. 查

  1. 使用迭代器依次打印集合中的每一个整数元素:
1
2
3
4
5
unordered_multiset<int>::iterator it;
for (it = set.begin(); it != set4.end(); ++it) {
pritnf("%d", *it);
}
printf("\n");

if查找元素位置,找不到就返回一个尾后迭代器:

1
2
3
4
5
6
if (set3.find(1) == set3.end()) {
printf("1 is not in set!\n");
}
else {
printf("1 is in set!\n");
}

count获取元素的数量:

1
2
printf("2 occurs %d times\n", set3.count(2));
2 occurs 1 times

4. 改

set的元素不允许直接修改。可以先删除,再插入。

问题二:解释一下配对t检验和非配对t检验

配对t检验用于比较同一组受试者或样本在两种不同条件下的均值差异的统计方法。配对 t 检验通常用于实验设计中,当我们希望比较相同个体在两个不同时间点或条件下的表现时。

非配对 t 检验是一种用于比较两个独立样本的均值是否有显著差异的统计方法。它适用于两组不同的样本,并且这两组样本之间是相互独立的,即每个样本的值与另一组的样本没有直接关系。

配对 t 检验相对于非配对(独立)t 检验在样本量相同的情况下更具统计功效。因为在配对样本中,每个 x 值与对应的 y 值是有关系的。

举个栗子:

  1. 糖尿病患者,我们将病人随机分为两组:一组接受药物 A,另一组接受药物 B。我们希望比较两组患者的健康改善程度是否存在显著差异。由于两组病人之间是独立的,因此我们可以使用 非配对 t 检验 来比较这两组的均值。

  2. 我们可以在一天给阿尔茨海默病患者服用药物(实验条件),在另一天服用糖丸安慰剂(对照组)。然后我们可以测量病人在两天内的健忘程度,以测试药物对记忆是否有显著影响。这种情况下配对 t 检验相对于非配对(独立)t 检验来说更有力,因为 x 的方差与 y 的方差直接相关:严重的阿尔茨海默病患者在两天都可能会相对健忘,而轻微的阿尔茨海默病患者在两天都可能会相对不易健忘。

使用独立样本 t 检验时,两组的样本量可以不同,而配对 t 检验则不可能。


每日三思(4月23日)
https://github.com/DukeZhu513/dukezhu513.github.io.git/post/three-questions-every-day-april-23-zf76xn.html
作者
Duke Zhu
发布于
2025年4月23日
许可协议