跳骚国王把跳蚤当宠物养观后感?

题面描述
跳蚤国有\(n\)个城市,伟大的跳蚤国王居住在跳蚤国首都中,即 \(1\)号城市中。跳蚤国最大的问题就是饮水问题,由于首都中居住的跳蚤实在太多,跳蚤国王又体恤地将分配给他的水也给跳蚤国居民饮用,这导致跳蚤国王也经常喝不上水。于是,跳蚤国在每个城市都修建了一个圆柱形水箱,这些水箱完全相同且足够高。一个雨天后,第\(i\)个城市收集到了高度为\(h_i\) 的水。由于地理和天气因素的影响,任何两个不同城市收集到的水高度互不相同。跳蚤国王也请来蚂蚁工匠帮忙,建立了一个庞大的地下连通系统。跳蚤国王每次使用地下连通系统时,可以指定任意多的城市,将这些城市的水箱用地下连通系统连接起来足够长的时间之后,再将地下连通系统关闭。由连通器原理,这些城市的水箱中的水在这次操作后会到达同一高度,并且这一高度等于指定的各水箱高度的平均值。由于地下连通系统的复杂性,跳蚤国王至多只能使用 \(k\)次地下连通系统。跳蚤国王请你告诉他,首都$ 1$号城市水箱中的水位最高能有多高?
分析\(1.\)所有积水高度小于等于\(1\)号点的点可以直接丢掉. 所以,将留下来的水的高度都改成其原本的高度\(-1\)号点高度,最后答案再加上\(1\)号点的高度.\(2.\)假如被要求进行两次合并,有两杯水\(h _ 1<h _ 2\),则一定先合并低的,再合并高的. 证明:先合并低的:\(\frac{1}{2}(\frac{1}{2}h_1+h _ 2)=\frac{1}{4}h_1+\frac{1}{2}h_2\),先合并高的:\(\frac{1}{2}h_1+\frac{1}{4}h _ 2\).\(3.\)若有一部分水合并了,一部分没有,那么被合并的水一定是最高的几杯.将所有留下来的水从低到高排序,设\(h_i\)表示第\(i\)杯水的高度,\(s _ i\)表示前\(i\)杯水的高度前缀和.合并操作一定是堆在最后面的一段一段的区间,从前往后合并.设\(dp[i][j]\)表示前j杯水合并了\(i\)次的最大价值,则\[ dp[i][j]=\max\left\{\frac{dp[i-1][k]+s _ j-s _ k}{j-k+1}\right\} \]观察这个式子,发现是点\((k-1,s _ k - dp[i-1][k])\)和点\((j, s _ j)\)构成的直线的斜率.用单调队列维护点\((k-1,s _ k - dp[i-][k])\)构成的下凸壳.因为点\((j, s _ j)\)的\(y\)坐标随\(x\)坐标递增,所以找最优决策时,将队首一段不会构成最优决策的点的弹出,队首就是最优决策.Code#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cstdlib>
#include<algorithm>
using namespace std;
const int PREC = 3000;
class Decimal
{
public:
Decimal();
Decimal(const std::string &s);
Decimal(const char *s);
Decimal(int x);
Decimal(long long x);
Decimal(double x);
bool is_zero() const;
std::string to_string(int p) const;
double to_double() const;
friend Decimal operator + (const Decimal &a, const Decimal &b);
friend Decimal operator + (const Decimal &a, int x);
friend Decimal operator + (int x, const Decimal &a);
friend Decimal operator + (const Decimal &a, long long x);
friend Decimal operator + (long long x, const Decimal &a);
friend Decimal operator + (const Decimal &a, double x);
friend Decimal operator + (double x, const Decimal &a);
friend Decimal operator - (const Decimal &a, const Decimal &b);
friend Decimal operator - (const Decimal &a, int x);
friend Decimal operator - (int x, const Decimal &a);
friend Decimal operator - (const Decimal &a, long long x);
friend Decimal operator - (long long x, const Decimal &a);
friend Decimal operator - (const Decimal &a, double x);
friend Decimal operator - (double x, const Decimal &a);
friend Decimal operator * (const Decimal &a, int x);
friend Decimal operator * (int x, const Decimal &a);
friend Decimal operator / (const Decimal &a, int x);
friend bool operator < (const Decimal &a, const Decimal &b);
friend bool operator > (const Decimal &a, const Decimal &b);
friend bool operator <= (const Decimal &a, const Decimal &b);
friend bool operator >= (const Decimal &a, const Decimal &b);
friend bool operator == (const Decimal &a, const Decimal &b);
friend bool operator != (const Decimal &a, const Decimal &b);
Decimal & operator += (int x);
Decimal & operator += (long long x);
Decimal & operator += (double x);
Decimal & operator += (const Decimal &b);
Decimal & operator -= (int x);
Decimal & operator -= (long long x);
Decimal & operator -= (double x);
Decimal & operator -= (const Decimal &b);
Decimal & operator *= (int x);
Decimal & operator /= (int x);
friend Decimal operator - (const Decimal &a);
friend Decimal operator * (const Decimal &a, double x);
friend Decimal operator * (double x, const Decimal &a);
friend Decimal operator / (const Decimal &a, double x);
Decimal & operator *= (double x);
Decimal & operator /= (double x);
private:
static const int len = PREC / 9 + 1;
static const int mo = 1000000000;
static void append_to_string(std::string &s, long long x);
bool is_neg;
long long integer;
int data[len];
void init_zero();
void init(const char *s);
};
Decimal::Decimal()
{
this->init_zero();
}
Decimal::Decimal(const char *s)
{
this->init(s);
}
Decimal::Decimal(const std::string &s)
{
this->init(s.c_str());
}
Decimal::Decimal(int x)
{
this->init_zero();
if (x < 0)
{
is_neg = true;
x = -x;
}
integer = x;
}
Decimal::Decimal(long long x)
{
this->init_zero();
if (x < 0)
{
is_neg = true;
x = -x;
}
integer = x;
}
Decimal::Decimal(double x)
{
this->init_zero();
if (x < 0)
{
is_neg = true;
x = -x;
}
integer = (long long)x;
x -= integer;
for (int i = 0; i < len; i++)
{
x *= mo;
if (x < 0) x = 0;
data[i] = (int)x;
x -= data[i];
}
}
void Decimal::init_zero()
{
is_neg = false;
integer = 0;
memset(data, 0, len * sizeof(int));
}
bool Decimal::is_zero() const
{
if (integer) return false;
for (int i = 0; i < len; i++)
{
if (data[i]) return false;
}
return true;
}
void Decimal::init(const char *s)
{
this->init_zero();
is_neg = false;
integer = 0;
while (*s != 0)
{
if (*s == '-')
{
is_neg = true;
++s;
break;
}
else if (*s >= 48 && *s <= 57)
{
break;
}
++s;
}
while (*s >= 48 && *s <= 57)
{
integer = integer * 10 + *s - 48;
++s;
}
if (*s == '.')
{
int pos = 0;
int x = mo / 10;
++s;
while (pos < len && *s >= 48 && *s <= 57)
{
data[pos] += (*s - 48) * x;
++s;
x /= 10;
if (x == 0)
{
++pos;
x = mo / 10;
}
}
}
}
void Decimal::append_to_string(std::string &s, long long x)
{
if (x == 0)
{
s.append(1, 48);
return;
}
char _[30];
int cnt = 0;
while (x)
{
_[cnt++] = x % 10;
x /= 10;
}
while (cnt--)
{
s.append(1, _[cnt] + 48);
}
}
std::string Decimal::to_string(int p) const
{
std::string ret;
if (is_neg && !this->is_zero())
{
ret = "-";
}
append_to_string(ret, this->integer);
ret.append(1, '.');
for (int i = 0; i < len; i++)
{
int x = mo / 10;
int tmp = data[i];
while (x)
{
ret.append(1, 48 + tmp / x);
tmp %= x;
x /= 10;
if (--p == 0)
{
break;
}
}
if (p == 0) break;
}
if (p > 0)
{
ret.append(p, '0');
}
return ret;
}
double Decimal::to_double() const
{
double ret = integer;
double k = 1.0;
for (int i = 0; i < len; i++)
{
k /= mo;
ret += k * data[i];
}
if (is_neg)
{
ret = -ret;
}
return ret;
}
bool operator < (const Decimal &a, const Decimal &b)
{
if (a.is_neg != b.is_neg)
{
return a.is_neg && (!a.is_zero()
!b.is_zero());
}
else if (!a.is_neg)
{
if (a.integer != b.integer)
{
return a.integer < b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] < b.data[i];
}
}
return false;
}
else
{
if (a.integer != b.integer)
{
return a.integer > b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] > b.data[i];
}
}
return false;
}
}
bool operator > (const Decimal &a, const Decimal &b)
{
if (a.is_neg != b.is_neg)
{
return !a.is_neg && (!a.is_zero()
!b.is_zero());
}
else if (!a.is_neg)
{
if (a.integer != b.integer)
{
return a.integer > b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] > b.data[i];
}
}
return false;
}
else
{
if (a.integer != b.integer)
{
return a.integer < b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] < b.data[i];
}
}
return false;
}
}
bool operator <= (const Decimal &a, const Decimal &b)
{
if (a.is_neg != b.is_neg)
{
return a.is_neg
(a.is_zero() && b.is_zero());
}
else if (!a.is_neg)
{
if (a.integer != b.integer)
{
return a.integer < b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] < b.data[i];
}
}
return true;
}
else
{
if (a.integer != b.integer)
{
return a.integer > b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] > b.data[i];
}
}
return true;
}
}
bool operator >= (const Decimal &a, const Decimal &b)
{
if (a.is_neg != b.is_neg)
{
return !a.is_neg
(a.is_zero() && b.is_zero());
}
else if (!a.is_neg)
{
if (a.integer != b.integer)
{
return a.integer > b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] > b.data[i];
}
}
return true;
}
else
{
if (a.integer != b.integer)
{
return a.integer < b.integer;
}
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i])
{
return a.data[i] < b.data[i];
}
}
return true;
}
}
bool operator == (const Decimal &a, const Decimal &b)
{
if (a.is_zero() && b.is_zero()) return true;
if (a.is_neg != b.is_neg) return false;
if (a.integer != b.integer) return false;
for (int i = 0; i < Decimal::len; i++)
{
if (a.data[i] != b.data[i]) return false;
}
return true;
}
bool operator != (const Decimal &a, const Decimal &b)
{
return !(a == b);
}
Decimal & Decimal::operator += (long long x)
{
if (!is_neg)
{
if (integer + x >= 0)
{
integer += x;
}
else
{
bool last = false;
for (int i = len - 1; i >= 0; i--)
{
if (last
data[i])
{
data[i] = mo - data[i] - last;
last = true;
}
else
{
last = false;
}
}
integer = -x - integer - last;
is_neg = true;
}
}
else
{
if (integer - x >= 0)
{
integer -= x;
}
else
{
bool last = false;
for (int i = len - 1; i >= 0; i--)
{
if (last
data[i])
{
data[i] = mo - data[i] - last;
last = true;
}
else
{
last = false;
}
}
integer = x - integer - last;
is_neg = false;
}
}
return *this;
}
Decimal & Decimal::operator += (int x)
{
return *this += (long long)x;
}
Decimal & Decimal::operator -= (int x)
{
return *this += (long long)-x;
}
Decimal & Decimal::operator -= (long long x)
{
return *this += -x;
}
Decimal & Decimal::operator /= (int x)
{
if (x < 0)
{
is_neg ^= 1;
x = -x;
}
int last = integer % x;
integer /= x;
for (int i = 0; i < len; i++)
{
long long tmp = 1LL * last * mo + data[i];
data[i] = tmp / x;
last = tmp - 1LL * data[i] * x;
}
if (is_neg && integer == 0)
{
int i;
for (i = 0; i < len; i++)
{
if (data[i] != 0)
{
break;
}
}
if (i == len)
{
is_neg = false;
}
}
return *this;
}
Decimal & Decimal::operator *= (int x)
{
if (x < 0)
{
is_neg ^= 1;
x = -x;
}
else if (x == 0)
{
init_zero();
return *this;
}
int last = 0;
for (int i = len - 1; i >= 0; i--)
{
long long tmp = 1LL * data[i] * x + last;
last = tmp / mo;
data[i] = tmp - 1LL * last * mo;
}
integer = integer * x + last;
return *this;
}
Decimal operator - (const Decimal &a)
{
Decimal ret = a;
if (!ret.is_neg && ret.integer == 0)
{
int i;
for (i = 0; i < Decimal::len; i++)
{
if (ret.data[i] != 0) break;
}
if (i < Decimal::len)
{
ret.is_neg = true;
}
}
else
{
ret.is_neg ^= 1;
}
return ret;
}
Decimal operator + (const Decimal &a, int x)
{
Decimal ret = a;
return ret += x;
}
Decimal operator + (int x, const Decimal &a)
{
Decimal ret = a;
return ret += x;
}
Decimal operator + (const Decimal &a, long long x)
{
Decimal ret = a;
return ret += x;
}
Decimal operator + (long long x, const Decimal &a)
{
Decimal ret = a;
return ret += x;
}
Decimal operator - (const Decimal &a, int x)
{
Decimal ret = a;
return ret -= x;
}
Decimal operator - (int x, const Decimal &a)
{
return -(a - x);
}
Decimal operator - (const Decimal &a, long long x)
{
Decimal ret = a;
return ret -= x;
}
Decimal operator - (long long x, const Decimal &a)
{
return -(a - x);
}
Decimal operator * (const Decimal &a, int x)
{
Decimal ret = a;
return ret *= x;
}
Decimal operator * (int x, const Decimal &a)
{
Decimal ret = a;
return ret *= x;
}
Decimal operator / (const Decimal &a, int x)
{
Decimal ret = a;
return ret /= x;
}
Decimal operator + (const Decimal &a, const Decimal &b)
{
if (a.is_neg == b.is_neg)
{
Decimal ret = a;
bool last = false;
for (int i = Decimal::len - 1; i >= 0; i--)
{
ret.data[i] += b.data[i] + last;
if (ret.data[i] >= Decimal::mo)
{
ret.data[i] -= Decimal::mo;
last = true;
}
else
{
last = false;
}
}
ret.integer += b.integer + last;
return ret;
}
else if (!a.is_neg)
{
return a - -b;
}
else
{
return b - -a;
}
}
Decimal operator - (const Decimal &a, const Decimal &b)
{
if (!a.is_neg && !b.is_neg)
{
if (a >= b)
{
Decimal ret = a;
bool last = false;
for (int i = Decimal::len - 1; i >= 0; i--)
{
ret.data[i] -= b.data[i] + last;
if (ret.data[i] < 0)
{
ret.data[i] += Decimal::mo;
last = true;
}
else
{
last = false;
}
}
ret.integer -= b.integer + last;
return ret;
}
else
{
Decimal ret = b;
bool last = false;
for (int i = Decimal::len - 1; i >= 0; i--)
{
ret.data[i] -= a.data[i] + last;
if (ret.data[i] < 0)
{
ret.data[i] += Decimal::mo;
last = true;
}
else
{
last = false;
}
}
ret.integer -= a.integer + last;
ret.is_neg = true;
return ret;
}
}
else if (a.is_neg && b.is_neg)
{
return -b - -a;
}
else if (a.is_neg)
{
return -(-a + b);
}
else
{
return a + -b;
}
}
Decimal operator + (const Decimal &a, double x)
{
return a + Decimal(x);
}
Decimal operator + (double x, const Decimal &a)
{
return Decimal(x) + a;
}
Decimal operator - (const Decimal &a, double x)
{
return a - Decimal(x);
}
Decimal operator - (double x, const Decimal &a)
{
return Decimal(x) - a;
}
Decimal & Decimal::operator += (double x)
{
*this = *this + Decimal(x);
return *this;
}
Decimal & Decimal::operator -= (double x)
{
*this = *this - Decimal(x);
return *this;
}
Decimal & Decimal::operator += (const Decimal &b)
{
*this = *this + b;
return *this;
}
Decimal & Decimal::operator -= (const Decimal &b)
{
*this = *this - b;
return *this;
}
/*以上为高精度浮点数模板*/
const int Maxn=8007;
inline int input()
{
register int x=0,c=getchar(),s=1;
while(c<'0'
c>'9')
(c=='-')&&(s=-1),
c=getchar();
while(c>='0'&&c<='9')
x=(x<<1)+(x<<3)+(c^48),
c=getchar();
return c*s;
}
Decimal ans;
int n,K,p,h[Maxn],zy[Maxn][15],s[Maxn],tot;
int Q[Maxn],H,T;
double dp[Maxn][15];
struct Point
{
double x,y;
}q[Maxn];
inline double slope(Point a,Point b)
{
return (a.y-b.y)/(a.x-b.x);
}
inline Decimal calc(int i,int j)
{
if(!j)
return h[1];
return (calc(zy[i][j],j-1)+s[i]-s[zy[i][j]])/(i-zy[i][j]+1);
}
int main()
{
n=input();
K=input();
p=input();
h[tot=1]=input();
for(int i=2;i<=n;++i)
{
h[i]=input();
if(h[i]>h[1])
h[++tot]=h[i];
}
n=tot;
sort(&h[1],&h[n+1]);
for(int i=1;i<=n;++i)
s[i]=s[i-1]+h[i];
K=min(K,n);
for(int i=1;i<=n;++i)
dp[i][0]=h[1];
int lim=min(K,14);
for(int j=1;j<=lim;++j)
{
Q[H=T=1]=1;
for(int i=1;i<=n;++i)
q[i]=(Point)
{
i-1,s[i]-dp[i][j-1]
};
for(int i=2;i<=n;++i)
{
Point u=(Point)
{
i,s[i]
};
while(H<T&&slope(u,q[Q[H]])<slope(u,q[Q[H+1]]))
++H;
zy[i][j]=Q[H];
dp[i][j]=(s[i]-s[Q[H]]+dp[Q[H]][j-1])/(i-Q[H]+1);
while(H<T&&slope(q[Q[T]],q[Q[T-1]])>slope(q[Q[T]],q[i]))
--T;
Q[++T]=i;
}
}
int m=n-K+lim,pos;
double mx=0;
for(int j=0;j<=lim;++j)
if(dp[m][j]>mx)
mx=dp[m][j],
pos=j;
ans=calc(m,pos);
for(int i=m+1;i<=n;++i)
ans=(ans+h[i])/2;
cout<<ans.to_string(p<<1)<<endl;
}
《奇妙的数王国》读后感1今年暑假,我读了一本有关数学知识的童话书《奇妙的数王国》,是李毓佩教授写的。他匠心独具,用童话形式把那枯燥的数学知识传授给我们少年儿童。这本书分为十个长篇,其中最长的一篇是“奇妙的数王国”。它的主人公有哥哥小强、弟弟小华、0国王、1司令、2司令等等。咱们先说说人物吧!整数王国的公民个个文武双全;而分数王国的公民则都神通广大;小数王国的公民特别勇敢无畏。他们经过一次大地震,在小强的帮助下,大家都毫发无损。总之,数王国的公民可真有能耐!令我感受最深的故事是《乌龟壳上的奥秘》。话说仙鹤王子在水面上休息时,身体成了个“2”字形。被心胸狭窄的2司令看到后,认为仙鹤王子得罪了他,于是利用魔咒把他变成一只丑陋的乌龟。好心的小华为了帮助仙鹤王子,绞尽脑汁,苦思冥想,用尽所有的办法都不能解开魔咒。小华因为45块石头认识了小鼹鼠,兵根据小鼹鼠的回答: =2,=4,=6, =8,0=1, =3, =5, =7, =9.小华一下子明白了!原来,要把这些数横竖相加,然后得到的和都是15!于是仙鹤王子得救了。可是,小华却被偶数士兵给抓走了。小华舍己救人的精神多么感人啊!这本书很有趣,与其他的数有很大差别。区别是这本有丰富的想象力,并且把枯燥乏味的数学知识编成一个个生动有趣的故事,吸引我不禁一口气读下去。同时,每一个故事都是一道道数学题,等着我来破解其中的答案,提高了我的思维能力。《奇妙的数王国》读后感2这个暑假,我在看《奇妙的数王国》一书。看着看着,我发现了一篇很有趣的文章-----猪八戒斗鳄鱼精,就连妈妈看了也觉得我很像故事里的八戒,故事是这样的:一天,猪八戒自告奋勇的前去探路。他正在过河时,被一只鳄鱼精打败了拖回了巢穴。猪八戒为了证明自己不笨,就让鳄鱼精来考他。鳄鱼精说:“我是长尾鳄鱼,我的尾巴的长度是头的3倍,身体只有尾巴的一半长,我的尾巴和身体加起来长13.5米,问我的头有多长?”猪八戒心里暗暗叫苦,但还是硬着头皮算起来:“我把你分成若干等份,头算1份,尾巴是头的3倍,尾巴就是3份,那身体只能占3/2份了,这样一来总长就是11/2份了。嗯,那样就可以算出来了”,说着,八戒报上了个算式:“鳄鱼头长=13.5*11/2=27/11(米)”。刚说完,八戒就听到悟空的声音:“八戒,算错了,13.5米只是它的身体和尾巴的长度,不包括头长,应该是13.5*(3/2+3)=3(米)”。这时鳄鱼精说:“我的头有3米,你算错了!”说着就来吃八戒,悟空突然出现,救出了八戒!猪八戒真是一个小马虎,这么简单的题也会算错,还好有悟空救他,不然就成了鳄鱼精的晚餐了。其实,我也是马大哈一个,经常算错,再不就是抄数字也会抄错,以至于我的正确率降低,老是考不出好成绩,以后,我一定要改正这个“毛病”,使我的成绩更加优秀!《奇妙的数王国》读后感3《奇妙的数王国》这本书是以童话的形式将数学知识贯穿其中表达出来。什么地方都包含了数学知识,把数字们都写活了。知识点由浅入深,从最开始的奇偶数谈到分数,再到立方米、梯等式……还涉及了图形,告诉我什么样的图形最牢固,不容易被震塌或顶翻。原本很枯燥的数学知识被作者这么一写反倒是让小朋友们都爱看了。我从这里学到了很多新知识,比如假分数和真分数。假分数是分母比分子小,它是一个整数和一个分数合成的,8/7=1+1/7;真分数是分子比分母小,并且互为倒数的两个分数相乘积为1;0乘或者除任何数结果都为零,但是0不能做分母,他必须睡在上铺;分子是1的分数叫古埃及分数;8个古埃及分数相加不可能等于1;任何数的0次方都等于1;偶数的约数是数的本身不断地除以2直到除不尽为止,这些数就是此数的约数;还有数的几次方,我原以为是该数乘以他右上角的那个小小的数,没想到实际上是此数被乘了多少次,那右上角的数表示此数将被乘几次,例如2的五次方表示2×2×2×2×2,并不是2×5……这本书相对来说还是挺深奥的,并不是所有的知识点我都能看懂,所以说他不仅适合小学生,也适合中学生,毕竟里面涉及到的知识点已经超出小学教学内容了。这本书我将好好珍藏,它能伴我走过小学甚至中学时代。《奇妙的数王国》读后感4读了《奇妙的`数王国》这本书,我知道了很多数学知识。如:组成相亲数条件是甲数的所有真因数之和等于乙数,而乙数所有真因数之和又恰好等于甲数,这就是一组相亲数了;古埃及分数是包括2/3和所有分子是1的分数;6是最小的完全数;无限循环小数0.66767……可以简写成0.67;2=1。在这本书里,我觉得最有趣的是有理数和无理数之战。故事中,因为无理数要求改名字,而有理数不答应,无理数一气之下就跟有理数打了起来。经过Л司令和1司令的同意,司令们来了一场决斗。后来经过两场决斗,Л司令自知不是1司令的对手就撤回了自己的疆土,再也不来侵犯了。《奇妙的数王国》里的故事也很好看,这本书以讲故事的形式说了很多数学原理。比如:“大战野牛山”这个小故事让我明白了三角形具有稳定性;“孙悟空遇到难题”的故事让我知道0.9=1;“重建小数城”让我学会了宽除以长等于0.618的长方形是黄金长方形。《奇妙的数王国》这本书让我学会了很多很多的数学知识,我推荐大家看这本书。《奇妙的数王国》读后感5今天我读了李毓佩教授著的《奇妙的数王国》,这本书写了十个数学故事,分别是奇妙的数学王国、猪八戒新传、长鼻子大仙、熊法官和猴警探、梦游“零王国”、神秘数、有理数和无理数之战、7和8的故事和鹰击长空。其中我对奇妙的数王国印象最深,一是它的故事最长,二是它讲到数字、分数、小数点王国发生的有趣事。李教授用故事让我们学会数学,而且用一些高年级的知识让我们现在就知道,所以我喜欢这本书。《奇妙的数王国》读后感6在假期里,妈妈给我买了一本有意义又有趣的书:《奇妙的数王国》。这一本书里有好几个数学童话故事呢!有奇妙的数王国、猪八戒新传、长鼻子大仙等10个数学童故事。另我印象最深的是猪八戒新传里的第四个故事:脑门起包。这个故事主要是进:师徒四人走得太累,唐僧让大家原地休息。这时孙空找了好多小石子,他让八和自己玩抢15的小游戏,规是,谁能拿到石子的数量够15谁就赢,输了就要被赢家敲一下脑门。他们玩的第一局开始了,忘了跟你说,悟空他把这些石子分成1个为一堆,2个为一堆……一共摆了9堆。八戒想,这还不容易,9加6就是十五。于是八戒先拿了有9个的一堆,悟空赶紧拿走6个的一堆;八戒心中大骂,猴头可真狡猾,竟然破坏了我的计划。没办法他只好拿了5个的一堆,当他还想再去拿1个的那-堆时,悟空又伸手抢走了1个的那一堆。他们玩了好几回,八戒还是输了,结果八戒的脑门上长了好几个包,他边摸着自已脑门上的包边想:“为什么那个猴头每次都会赢呢?”看完就个故事,我有一个深刻的感受,孙悟空真的是很聪明,他能将在太上老君那儿看到的九宫图,他就想出了抢15的小游戏。我看完了这本书,让我学到了许许多多的数学知识,这本书我已经看了第三遍了。这本有意义又趣的让我看得爱不释手。你们有兴趣想看吗?我可以借给你们看看!可有趣啦!《奇妙的数王国》读后感7最近,我读了一本有趣的童话故事书,它的名字叫《奇妙的数王国》。这本书中有0国王、1司令、2司令,还有许多有趣的故事,比如“零国王苦斗跳蚤”、“速算专家数8”、“追杀小数点”、“神秘的蒙面数”……故事里面的数字们总是逗得我哈哈大笑,让我感觉到枯燥无味的数学竟然变得如此有趣。虽然书里有许多我不懂的数学知识,但是我还是忍不住要看下去。我想有了这本书,我会越来越喜欢数学的。《奇妙的数王国》读后感8一开始,我以为这只是一本讲数学公式的书,读完才发现,这是一本数学童话故事书。书里面的人物栩栩如生,非常吸引者。本书一共有十章,不同的章节都有不同吸引人的地方。书中的主人公是五年级的小华和初一生小强。两个人的数学知识都很丰富,曾经获得过几次数学竞赛的奖项。两人在数王国里做了很多好事,深受零国王的喜爱。在这篇童话里我认识了从未听说过的古埃及分数,其实就是我们常说的分数单位,是五千年前一个叫阿莫斯的人在一本书首次提到的。每个古埃及分数,都和一个整数是互倒数。此外,我又认识了相亲数,220和284就是一对相亲数。220的所有真因数相加就是284,284的所有真因数相加就是220.这让我知道了:你中有我,我中有你,相亲相爱,永不争斗。一次,从数王国外来了个食数怪兽,怪兽一看60和15在守门,一下把60吃了,把15扔在地上。大摇大摆地走到了城里,吃了24和44,不过怪兽还饿,于是零国王就想:可以派出几支小队,看看怪兽吃什么,于是派出了100,但怪兽吃了一百,难道怪兽吃末尾是零的数。不过24和44末尾不是零,但是也被吃了,零国王恍然大悟,于是跳进了怪兽的肚子里,大家惊呆了,原来零国王早就知道了。怪兽动了几下就死了,零国王和大家都走了出来,零国王把大家都变成零,怪兽就饿死了。看了数学的世界可真是多姿多彩啊!《奇妙的数王国》读后感9今天老师发给了我一本书,名字叫奇妙的数王国我感到很高兴,因为我能读到好书了,这本书对我很有帮助。这本书写了数字的力量是无穷的,我感受到了小强和小华的聪明和数字的奇妙的快乐,小强是个善于动脑筋的孩子,小华他很聪明还很善良,1司令很善良,2司令有终身报效数字王国的精神,0国王很热心还很善良,平行四边形家族有奉献的精神,它们很棒。篇一:《奇妙的数王国》读后感《奇妙的数王国》是一本关于数学的故事书,书里有10个故事:奇妙的数王国、猪八戒新传、长鼻子大仙……都很有趣。我最喜欢“奇妙的数王国”,故事是这样的:一天,小强和他的弟弟小华来到了数王国做客,游览数王国时遇到了一点小麻烦,一次大地震,小数们被震变了形,小强把它们治好了。这本书我很喜欢。篇二:《奇妙的数王国》读后感今天,我读了一本名叫《奇妙的数王国》,这本书非常好看,讲了许多的数学童话,寓教于乐,能激发我们对数学的兴趣,里面的故事很有趣,也很搞笑。说了猴法官和熊警探联合破案,除暴安良,保护动物的故事,用智慧与狐狸等狡猾的动物轮番交战,最后以猴法官的机智勇敢而告终。从这本书我懂得了:做班干部,一档尽到自己应该做的,不是拿权力来约束别人,要起带头作用。做一个品学兼优的好孩子。篇三:《奇妙的数王国》读后感这本书的作者是著名科普作家李毓佩,这本书还是一套丛书中的一本,一套共22本呢!这本里包含《奇妙的数王国》、《猪八戒新传》、《长鼻子大仙》、《熊法官和猴警探》、《梦游“零王国”》、《有理数和无理数之战》、《小数点大闹整数王国》、《7和8的故事》和《鹰击长空》十篇故事。这本书的故事一个个都既形象又生动,这使得我废寝忘食地看它。看完这本书后,我对数学的兴趣更浓厚了,更爱看李毓佩的数学故事了,更想要数学故事书了。你想要这本书吗?如果想,就去买一本吧!篇四:《奇妙的数王国》读后感在寒假放假期间回广东的路上,我看了一本“奇妙的数王国”,我发觉原来数学也是这么有趣,原来数学也并不枯躁乏味的,原来数学中的每一个数也是有生命的.,原来数学中也可以找到童话故事中的奇幻情节。读了这本书,我认识到了毕达哥拉斯,他是古希腊的数学家; 我认识了费马,他是17世纪法国的数学家;我认识了欧拉,他是18世纪瑞士数学家;我还认识了16岁的巴格尼,他是1886年的意大利数学家,原来他们都发现了相亲数。再往后看,哈哈,我又发现了一个好玩的东西,它叫作“小数点”,原来,一旦被小数点点上的数后,比1小的还有千千万万个数,如“0。678,0。356,0。442”,这些都是比1小的哦。原来,在课外书上数学也可以学到这么多东西。篇五:《奇妙的数王国》读后感自从我读了这本 “ 奇妙的数王国 ” 之后 ,我就学会了许多许多的关于数学的知识。在这本书里面 ,通过用童话故事和有趣的讲解关于数学方面的知识 ,让我们了解到很多的数学知识 ,读了一个故事后 ,就会让我知道了数学的一个知识 ,当我做这个题的时候 ,就知道了这题是怎么做的 ,当我把这整本书读完后 ,我就学会了很多很多的数学的知识 ,比如 :在字母表中 ,字母 “a ” ,在数学里 ,它是一个重要的人物 ,它想代替哪个数 ,就可以代替那个数 ;零乘以任何不是零的数都得零……在这本书中 ,让我明白了一个道理 ,数学其实并没有那么的不难 ,如果你用心的去学 ,就会觉得数学题根本不难 ,而且 ,非常有趣 。篇六:《奇妙的数王国》读后感读了《奇妙的数王国》,我感到了数学的乐趣,这本书将抽象、枯燥的数学知识变得有趣。什么事都离不开数学。这本书讲了:小强和小华一起解数学难题,让数王国变得平静。这本书中还有0国王,1司令,2司令,还有许多有趣的故事“零国王苦斗跳蚤 ”、“速算专家数8 ”、“追杀小数点”、有理数和无理数之战、神奇的小数点等好玩的故事。作者讲的故事深深的印在我的脑海里,读完这本书,我对数学有了更深刻的认识,原来我认为枯燥无味的数学,竟然变得如此有趣,吸引我看下去,小朋友们,快来读这本书吧!从这本书中你们可以热爱数学。篇七:《奇妙的数王国》读后感假期里我读了《奇妙的数王国》这本书,书中有很多数学故事,使我受到了启发,我的数学成绩不是很好,看了这本书,我渐渐的对这些数字有了很大的兴趣, 并和数字们交上了朋友。小华,小强,小毅等个个都是数学天才,整数王国、分数王国、小数点王国,三角形家族、四边形家族,创造了一个又一个的数字故事,数字7和数字8度过了一个奇妙的历险。在这里孙悟空竟然也有数学问题,孙悟空学好了数学,师徒四人乘着数学往西天取经去。这些数字真是太神奇了!我喜欢小小的字母a。因为它什么数字都能变得出来,连最奇妙的∏都拿它没办法,字母a的小尾巴一翘一翘的,真可爱,我也想变成小小的字母a。小数点王国里居住着无限循环小数,零国王的国家里,发生了许多奇妙的事件。数学王国可真奇妙,它让我了解了方程,让我懂得了有理数、无理数,偶数、奇数,更让我懂得了生活中处处都离不开数学。此外,我还认识了相亲数。220和284就是一对相亲数。220的所有真因数相加就是284,284的所有真因数相加就是220。相亲数让我知道了:你中有我,我中有你,相亲相爱,永不斗争。看了这本书,我了解了数学的许多奥秘,数学在我眼里变得更奇妙了,我对数学的兴趣又增加了一层。篇八:《奇妙的数王国》读后感昨天,妈妈送给了我一本书,叫做《奇妙的数王国》,我先看了这一篇《一场莫名其妙的战争》。这一篇故事讲的是:弟弟小华和哥哥小强听到了枪炮声,就跑到了山顶上,他们看到有两支军队正在打架,一支军队穿着红色军装,他们胸前都有一个数字,这些数字都是偶数,另一支队伍穿着绿色军装,他们胸前也都有一个数字,但是,这些数字都是奇数。这时,小强和小华听到草丛里有人哭泣,于是小强就扒开草地一看,有一个衣着华丽的胖老头,他就是正在哭泣的人。小强发现这个人胸前的数字是0,就以为他是0号,其实那个人告诉小强他就是0,那个人就是零国王。这时,响起了嘹亮的军号声,接着,偶数队伍中亮出了一面大红旗,突然,出来了一位军官,他的胸前写着一个“2”字,他就是偶数军团的2司令,在奇数这边也有一个军官,他的胸前写着一个“1”字,他就是奇数军团的1司令。这时,1司令和2司令已经让战斗进入了高潮。其实,1司令和2司令是零国王的左膀右臂。这时,小强就问零国王:“是不是最小的正整数就能当司令?”其实不是这样的,1司令和2司令都有一种很特殊的能力。2司令逼着1司令和零国王把偶数叫做男人数,把奇数叫做女人数,可1司令和零国王都不同意,2司令这下可发火了,他就让战争继续开始。篇九:《奇妙的数王国》读后感寒假里,我和妈妈一起读了李毓佩教授写的《奇妙的数王国》这本书,这是一本数学童话故事书。我很喜欢这本书,妈妈也说写的很好。这本书一共有10个故事,都和数学有非常密切的关系。李教授用讲故事的方法把枯燥的数学知识讲的深入浅出,读起来轻松自如。我最喜欢“鹰击长空”系列中的“空中大决战”、“鸦鸡搏杀”和“最后一战”这三个故事。它们讲了小鹰阿尔法、褐马鸡跟秃鹫、秃鼻乌鸦和红脚隼之间的战斗。其中我印象最深的是阿尔法和秃鹫的最后一战:阿尔法厉声说到:“我让你两招儿,你现在投降还为时不晚,不然的话,我要在你身上啄许许多多的洞!”“啄洞?”秃鹫问,“你准备啄多少个洞呢?”阿尔法说:“在你头和背共啄4个洞,在头和腹共啄6个洞,在背和腹共啄8个洞。你算算一共啄几个洞?”秃鹫算了半天也没算出来。“这个容易算。”阿尔法说,“头+背+=4,头+腹=6,背+腹=8。三个式子相加有2(头+背+腹)=4+6+8=18,所以头+背+腹=9。不多,只有9个洞。”秃鹫吓得一缩脖子,他自言自语地说:“不成,我和他拼啦!”秃鹫煽动翅膀加速向阿尔法冲去。阿尔法缺身体腾空,飞到了秃鹫上面乘势在秃鹫背上狠狠啄了一下。“砰”的一声,秃鹫重重地摔在地上,再也没有爬起来。这本书写得太精彩啦!看完它让我明白,原来我认为枯燥无味的数学竟然变得如此有趣,让我在愉悦中掌握很多数学知识。虽然有些知识我还没有学到,不是很明白,但我依然喜欢这本书。我也很喜欢和妈妈一起读书的时间,看到好笑的地方,我们会一起哈哈大笑,我还会继续和妈妈一起读书的。篇十:《奇妙的数王国》读后感我最近看了一本非常有趣的书,是《奇妙的数王国》作者是让我们尊敬的李毓佩教授,这本书主要让我们知道数字的作用和数字在生活中是不可缺少的东西。这本书是由一个个小故事组成的,而每个小故事都有着大道理,就说《神秘数》的故事。神秘数就是a,故事通过假5和真5都说对方是假的,让数居民们来判断谁是真5,结果——5、1/5、0。1都无法辨认。——5跳进来,其中的一个围着——5转了一圈,变成了两个——5,它又围着无理数π转了一圈,变成了两个π,大家议论纷纷:“看来这个坏数是一个本领高强,变化莫测的神秘数。”故事的结尾用小毅的话,让我明白了代数abc的意思,他解释说:“这个神秘数就是他代数书中丢失的a。所谓代数,就是用abc来代替具体的数。”通过这个故事,告诉我a可以表示正数,又可以表示负数,还可以表示0。这本书 用少年儿童喜闻未见的童话故事形式,将抽象,枯燥的数学知识讲的深入浅出,读起来轻松自如。这本书不仅我喜欢看,连我的妈妈也喜欢看。喜欢的话,朋友们有空也去读一下吧!读完一本书以后,你有什么《奇妙的数王国》读书笔记1今天,我读了一本名叫《奇妙的数王国》,这本书非常好看,讲了许多的数学童话,寓教于乐,能激发我们对数学的兴趣,里面的故事很有趣,也很搞笑。说了猴法官和熊警探联合破案,除暴安良,保护动物的故事,用智慧与狐狸等狡猾的动物轮番交战,最后以猴法官的机智勇敢而告终。从这本书我懂得了:做班干部,一档尽到自己应该做的,不是拿权力来约束别人,要起带头作用。做一个品学兼优的.好孩子。《奇妙的数王国》读书笔记2今天,我看了《奇妙的数王国》这本书。里面有10篇故事,其中一篇叫奇妙的数王国,写的是小华和小强一起到数王国,他们和双数还有单数做了许多数学题,我真佩服小华和小强。第二篇是猪八戒新传,讲的是猪八戒被孙悟空的怪题难住了。最后,悟空帮他解开了难题……我喜欢这本书,从这本书中我了解数学的奥妙和学习数学的快乐,并且对数学会有更大的兴趣。《奇妙的数王国》读书笔记3今天我读了李毓佩教授著的《奇妙的数王国》,这本书写了十个数学故事,分别是奇妙的数王国、猪八戒新传、长鼻子大仙、熊法官和猴警探、梦游“零王国”、神秘数、有理数和无理数之战、7和8的故事和鹰击长空。其中我对奇妙的数王国印象最深,一是它的故事最长,二是它讲到数字、分数、小数点王国发生的有趣事。李教授用故事让我们学会数学,而且用一些高年级的知识让我们现在就知道,所以我喜欢这本书。《奇妙的数王国》读书笔记4今天老师发给了我一本书,名字叫奇妙的数王国我感到很高兴,因为我能读到好书了,这本书对我很有帮助。这本书写了数字的力量是无穷的,我感受到了小强和小华的聪明和数字的奇妙的快乐,小强是个善于动脑筋的孩子,小华他很聪明还很善良,1司令很善良,2司令有终身报效数字王国的精神,0国王很热心还很善良,平行四边形家族有奉献的精神,它们很棒。《奇妙的数王国》读书笔记5我读了《奇妙的数王国》,这本书给我留下了深刻的印象。《奇妙的数王国》就像磁铁一样把我牢牢地吸住。它让我像是在知识的海洋里自由自在的遨游着。读了这本书,它让我懂得了许多数学知识:分数也分真假,有真分数,也还有假分数;小数点是个神奇活泼的东西,就像一个顽皮的孩子,它可以使数忽而变大、忽而变小……读完了这本书,我也迷上了数学,这本书真是太好了!

我要回帖

更多关于 国王把跳蚤当宠物养 的文章