头像

云衣醉梦




离线:1天前


最近来访(2489)
用户头像
天元之弈
用户头像
Whalefall.
用户头像
reclusive
用户头像
做事要有遗逝感
用户头像
陌星
用户头像
Ethanyyc
用户头像
冰幽若雪
用户头像
织葉
用户头像
Ascension
用户头像
wangyue2017
用户头像
ElysiaSaySo
用户头像
HANrao
用户头像
我是球球
用户头像
liaoyanxu
用户头像
qwf
用户头像
Jerrywang
用户头像
yxc的小迷妹
用户头像
闻天语
用户头像
花开城南与君在
用户头像
梦客


这里是一道 神奇帅气 的题目。

一个容器装有 $1\text{L}$ 水,按照如下要求把水倒出:第 $1$ 次倒出 $\dfrac{1}{2}\text{L}$ 水,第 $2$ 次倒出的水量是 $\dfrac{1}{2}\text{L}$ 的 $\dfrac{1}{3}$,第 $3$ 次倒出的水量是 $\dfrac{1}{3}\text{L}$ 的 $\dfrac{1}{4}$,第 $4$ 次倒出的水量是 $\dfrac{1}{4}\text{L}$ 的 $\dfrac{1}{5}$...... 第 $n$ 次倒出的水量是 $\dfrac{1}{n}\text{L}$ 的 $\dfrac{1}{n+1}$......按照这种倒水的方法,这 $1\text{L}$ 水经多少次可以倒完?

很显然用实验的方法是很难精确测量出水量的,所以我们可以将上面的问题抽象成数学模型加以解决。

容易列出倒 $n$ 次水倒出的总水量为:
$$\begin{aligned}\dfrac{1}{2}+\dfrac{1}{2\times 3}+\dfrac{1}{3\times 4}+\dfrac{1}{4\times 5}+\ldots +\dfrac{}{\left( n-1\right) n}\ +\dfrac{1}{n \left( n+1\right) }\end{aligned}.①$$

根据分式的减法法则,
$$\dfrac{1}{n}-\dfrac{1}{n+1}=\dfrac{n+1}{n \left( n+1\right) }-\dfrac{n}{n \left( n+1\right) }=\dfrac{1}{n \left( n+1\right) }.$$

反过来,有
$$\dfrac{1}{n \left( n+1\right) }=\dfrac{1}{n}-\dfrac{1}{n+1}.②$$

利用 $②$ 可以把 $①$ 改写为
$$\begin{aligned}\dfrac{1}{2}+\left( \dfrac{1}{2}-\dfrac{1}{3}\right) +\left( \dfrac{1}{3}-\dfrac{1}{4}\right) +\left( \dfrac{1}{4}-\dfrac{1}{5}\right) \ +\ldots +\left( \dfrac{1}{n-1}-\dfrac{1}{n}\right) +\left( \dfrac{1}{n}-\dfrac{1}{n+1}\right) \end{aligned}.③$$

合并 $③$ 中的相反数,得 $1-\dfrac{1}{n+1}$,即倒 $n$ 次水倒出的总水量为
$$1-\dfrac{1}{n+1}=\dfrac{n}{n+1}\text{(L).}$$

可以发现,从数学上看,随着倒水次数 $n$ 的不断增加,倒出的总水量 $\dfrac{n}{n+1}$ 也不断增加。然而,不论倒水次数 $n$ 有多大,导出的总水量 $\dfrac{n}{n+1}$ 总小于 $1$。

因此,按这种方法,容器中的 $1\text{L}$ 水是倒不完的。



活动打卡代码 AcWing 4870. 装物品

#include<iostream>
using namespace std;
int main(){
    int x;
    cin >> x;
    if (x % 5 == 0) cout << x / 5;
    else cout << x / 5 + 1;
}



更好的阅读体验。

毕达哥拉斯学派给出的证明。$\color{white}{数学书就有,自己康康叭qwq}$

假设 $\sqrt{2}$ 是有理数,那么存在两个互质的正整数 $p, q$ ,使得

$$\sqrt{2}=\frac{p}{q},$$

于是

$$p=\sqrt{2} q.$$

两边平方得

$$p^{2}=2 q^{2} .$$

由 $2 q^{2}$ 是偶数,可得 $p^{2}$ 是偶数,而只有偶数的平方才是偶数,所以 $p$ 也 是偶数。

因此可设 $p=2 s$ ,代入上式,得 $4 s^{2}=2 q^{2}$ ,即

$$q^{2}=2 s^{2}$$

所以 $q$ 也是偶数,这样, $ p$ 和 $q$ 都是偶数,不互质,这与假设 $p, q$ 互质矛盾。

这个矛盾说明, $\sqrt{2}$ 不能写成分数的形式,即 $\sqrt{2}$ 不是有理数。实际上, $\sqrt{2}$ 是无限不循环小数。

拓:同样地,如何证明 $\sqrt[3]{2}$ 不是有理数呢?

假设 $\sqrt[3]{2}$ ,那么存在两个互质的正整数 $p, q$ ,使得

$$\sqrt[3]{2}=\frac{p}{q}$$

$$\frac{p^{3}}{q^{3}}=2$$

这就与 $p$ 和 $q$ 互质相矛盾,所以假设不成立。

这个矛盾说明, $\sqrt[3]{2}$ 不能写成分数的形式,即 $\sqrt[3]{2}$ 不是有理数。


人教版七下数学书第六章实数 $\text{P58}$.

书中只提到为什么 $\sqrt{2}$ 不是有理数,这个分享中拓展了为什么 $\sqrt[3]{2}$ 不是有理数(课本中留下了这么一个悬念)

$\text{P.S}$ 无理数并非无理,只是不能写成分数的形式而已。

参考文献搞出来了,不要喷我啊啊啊!




草,怎么被踩了/kk

宝宝不开心呐qwq(bushi




云衣醉梦
1个月前

如果你发现我没有代码就是两种情况。
①用的手机,暂时没敲(概率较小)
②还没做,要么不会做,要么没调完。

//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~



云衣醉梦
1个月前

死了
emm决定开卷了: )

# include <iostream>
# include <map>
# include <cstdio>
# include <cstring>
using namespace std;
# define N 50010
int fa[N * 3],n,k,ans;
int find(int x){
    if (fa[x] != x) return fa[x] = find(fa[x]);
    return x;
}
int main(){
    cin >> n >> k;int a,b,c;
    for (int i = 1;i <= n * 3;i ++) fa[i] = i;
    for (int i = 1;i <= k;i ++){
        cin >> a >> b >> c;
        if (b > n || c > n || (a == 2 && b == c)){
            ans ++;
            continue;
        }
        if (a == 2){
            if (find(b) == find(c) || find(b + n * 2) == find(c) || find(c + n) == find(b)) ans ++;
            else{
                fa[find(b + n)] = find(c);
                fa[find(b)] = find(c + 2 * n);
                fa[find(c + n)] = find(b + 2 * n);
            }
        }
        if (a == 1){
            if ((find(b + n) == find(c)) || (find(b + 2 * n) == find(c))) ans ++;
            else{
                fa[find(b + 2 * n)] = find(c + 2 * n);
                fa[find(b + n)] = find(c + n);
                fa[find(b)] = find(c);
            }
        }
    }
    cout << ans;
}

@冰中月 你居然作为九班班花会夹子音!(两眼放光)妥妥的娘…(bushi)




云衣醉梦
1个月前
#include <iostream>
#include <cstring>
using namespace std;
int f[20010]; 
int find(int bzynp) 
{
  if(f[bzynp] != bzynp)
    f[bzynp] = find(f[bzynp]);
  return f[bzynp];
}
int main()
{
  int N, M;
  int a, b;
  scanf("%d%d",&N, &M);
  for(int i = 1;i <= N;i++)
    f[i]=i;
  for(int i = 0;i < M;i++)
  {
    scanf("%d%d",&a,&b);
    a = find(a);
    b = find(b);
    f[a] = b;
  }
  scanf("%d",&M);
  while(M --)
  {
    scanf("%d%d",&a, &b);
    a = find(a);
    b = find(b);
    if(a == b) printf("Yes\n");
    else printf("No\n");
  }
  return 0;
}



云衣醉梦
1个月前
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;
typedef long long LL;
const int N = 100010;
int n, k;
LL s[N], cnt[N];

int main()
{
    scanf("%d%d", &n, &k);
    for (int i = 1; i <= n; i ++ )
    {
        scanf("%lld", &s[i]);
        s[i] += s[i - 1];
    }

    cnt[0] = 1;
    for (int i = 1; i <= n; i ++ )
    {
        cnt[s[i] % k] ++ ;
    }

    LL ans=0;
    for(int i=0;i<=k-1;i++){
        ans += (cnt[i] * (cnt[i] - 1)) / 2;    
    }
    cout << ans;
    return 0;
}




云衣醉梦
1个月前
#include <iostream>
using namespace std;
int a[200005];
int main()
{
    int n, k;
    cin >> n >> k;
    for (int i = 0; i < 2 * n; i++) cin >> a[i];
    int l = 1, r = 100000;
    while (l < r)
    {
        int m = (l + r + 1) / 2;
        int s = 0;
        for (int i = 0; i < 2 * n; i += 2)
            s += (a[i] / m) * (a[i + 1] / m);
        if (s >= k) l = m;
        else r = m - 1;

    }
    cout << l << endl;
    return 0;
}



云衣醉梦
1个月前
#include <iostream>
#include <string>
using namespace std;
int main() {
    string s1, s2;
    cin >> s1 >> s2;
    int res = 0;
    for (int i = 0; i < s1.size() - 1; i++) {
        if (s1[i] != s2[i]) {
            if (s1[i + 1] == '*') s1[i + 1] = 'o';
            else if (s1[i + 1] == 'o') s1[i + 1] = '*';
            res ++;
        }

    }
    cout << res;
    return 0;
}