תרגום ביטויים מפורשים לסדרי גדילה
עריכה
אנא הוכח או הפרך את הטענות הבאות:
80
=
O
(
3
⋅
n
)
{\displaystyle \displaystyle 80=O(3\cdot n)}
.
2
n
+
1003
+
30
=
O
(
2
n
)
{\displaystyle \displaystyle 2^{n+1003}+30=O(2^{n})}
.
2
⋅
n
+
7
=
O
(
2
⋅
n
+
3
)
{\displaystyle \displaystyle 2\cdot n+7=O(2\cdot n+3)}
.
3
⋅
n
=
O
(
1
)
{\displaystyle \displaystyle 3\cdot n=O(1)}
.
log
2
(
n
)
=
O
(
log
10
(
n
)
)
{\displaystyle \displaystyle \log _{2}(n)=O(\log _{10}(n))}
.
שימו לב:
הכוונה בסעיף הראשון לפונקציה הקבועה
f
(
n
)
=
80
{\displaystyle \displaystyle f(n)=80}
, ולא לקבוע 80.
נכון.
הוכחה: נבחר
c
=
1
{\displaystyle \displaystyle c=1}
ו
n
0
=
100
{\displaystyle \displaystyle n_{0}=100}
, ונוודא
∀
n
≥
100
80
≤
1
⋅
3
⋅
n
{\displaystyle \displaystyle \forall _{n\geq 100}80\leq 1\cdot 3\cdot n}
.
נכון.
הוכחה: נבחר
c
=
2
1008
{\displaystyle \displaystyle c=2^{1008}}
ו
n
0
=
1
{\displaystyle \displaystyle n_{0}=1}
, ונוודא
∀
n
≥
1
2
n
+
1003
+
30
=
2
1003
⋅
2
n
+
30
≤
2
1008
⋅
2
n
{\displaystyle \displaystyle \forall _{n\geq 1}2^{n+1003}+30=2^{1003}\cdot 2^{n}+30\leq 2^{1008}\cdot 2^{n}}
.
נכון.
הוכחה: נבחר
c
=
3
{\displaystyle \displaystyle c=3}
ו
n
0
=
1
{\displaystyle \displaystyle n_{0}=1}
, ונוודא
∀
n
≥
1
2
⋅
n
+
7
≤
3
⋅
(
2
⋅
n
+
3
)
=
6
⋅
n
+
9
{\displaystyle \displaystyle \forall _{n\geq 1}2\cdot n+7\leq 3\cdot (2\cdot n+3)=6\cdot n+9}
.
לא נכון.
הוכחה: נניח בשלילה שהטענה נכונה, ולכן עבור
c
>
0
{\displaystyle \displaystyle c>0}
ו
n
0
>
0
{\displaystyle \displaystyle n_{0}>0}
כלשהם,
∀
n
≥
n
0
3
⋅
n
≤
c
⋅
1
{\displaystyle \displaystyle \forall _{n\geq n_{0}}3\cdot n\leq c\cdot 1}
.
אם נציב
n
=
n
0
+
⌈
c
⌉
,
{\displaystyle \displaystyle n=n_{0}+\left\lceil c\right\rceil ,}
נקבל
(
3
⋅
n
)
|
n
0
+
⌈
c
⌉
=
3
⋅
n
0
+
3
⋅
⌈
c
⌉
≤
{\displaystyle \displaystyle (3\cdot n)|^{n_{0}+\left\lceil c\right\rceil }=3\cdot n_{0}+3\cdot \left\lceil c\right\rceil \leq }
(
c
⋅
1
)
|
n
0
+
⌈
c
⌉
=
c
,
{\displaystyle \displaystyle (c\cdot 1)|^{n_{0}+\left\lceil c\right\rceil }=c,}
שאינו הגיוני.
נכון.
הוכחה: באופן כללי,
log
b
(
a
)
=
log
c
(
a
)
/
log
c
(
b
)
{\displaystyle \displaystyle \log _{b}(a)=\log _{c}(a)/\log _{c}(b)}
, ולכן הביטויים הם למעשה אותו ביטוי עד כדי הכפלה בקבוע.
אנא הוכח את כלל האדיטיביות ל
Ω
{\displaystyle \displaystyle \Omega }
:
לכל
f
(
n
)
,
g
(
n
)
{\displaystyle \displaystyle f(n),g(n)}
,
Ω
(
f
(
n
)
)
+
Ω
(
g
(
n
)
)
=
Ω
(
f
(
n
)
+
g
(
n
)
)
{\displaystyle \displaystyle \Omega (f(n))+\Omega (g(n))=\Omega (f(n)+g(n))}
.
ההוכחה דומה למדי להוכחת האדיטיביות שראינו בהרצאה :
הוכחה: (1) עפ"י ההגדרה:
f
1
(
n
)
=
Ω
(
f
(
n
)
)
{\displaystyle \displaystyle f_{1}(n)=\Omega (f(n))}
משמעו שלכל
n
≥
n
0
,
f
{\displaystyle \displaystyle n\geq n_{0,f}}
,
f
1
(
n
)
≥
c
f
⋅
f
(
n
)
{\displaystyle \displaystyle f_{1}(n)\geq c_{f}\cdot f(n)}
, עבור
c
f
,
n
0
,
f
>
0
{\displaystyle \displaystyle c_{f},n_{0,f}>0}
כלשהם.
g
1
(
n
)
=
Ω
(
g
(
n
)
)
{\displaystyle \displaystyle g_{1}(n)=\Omega (g(n))}
משמעו שלכל
n
≥
n
0
,
g
{\displaystyle \displaystyle n\geq n_{0,g}}
,
g
1
(
n
)
≥
g
⋅
g
(
n
)
{\displaystyle \displaystyle g_{1}(n)\geq _{g}\cdot g(n)}
, עבור
c
g
,
n
0
,
g
>
0
{\displaystyle \displaystyle c_{g},n_{0,g}>0}
כלשהם.
לכן:
לכל
n
≥
max
{
n
0
,
f
,
n
0
,
g
}
{\displaystyle \displaystyle n\geq \max\{n_{0,f},n_{0,g}\}}
,
f
1
(
n
)
≥
max
{
c
f
,
c
g
}
⋅
f
(
n
)
{\displaystyle \displaystyle f_{1}(n)\geq \max\{c_{f},c_{g}\}\cdot f(n)}
.
לכל
n
≥
max
{
n
0
,
f
,
n
0
,
g
}
{\displaystyle \displaystyle n\geq \max\{n_{0,f},n_{0,g}\}}
,
g
1
(
n
)
≥
max
{
c
f
,
c
g
}
⋅
g
(
n
)
{\displaystyle \displaystyle g_{1}(n)\geq \max\{c_{f},c_{g}\}\cdot g(n)}
.
מקבלים את התוצאה ע"י חיבור שני האי-שוויונים האחרונים.
אנא הוכח את טרנזיטיביות ל
Ω
{\displaystyle \displaystyle \Omega }
:
לכל
f
(
n
)
,
g
(
n
)
{\displaystyle \displaystyle f(n),g(n)}
,
f
(
n
)
=
Ω
(
g
(
n
)
)
∧
g
(
n
)
=
Ω
(
h
(
n
)
)
⇒
f
(
n
)
=
Ω
(
h
(
n
)
)
{\displaystyle \displaystyle f(n)=\Omega (g(n))\wedge g(n)=\Omega (h(n))\Rightarrow f(n)=\Omega (h(n))}
.
ההוכחה דומה למדי להוכחת הטרנזיטיביות שראינו :
(1) עפ"י ההגדרה:
f
(
n
)
=
Ω
(
g
(
n
)
)
{\displaystyle \displaystyle f(n)=\Omega (g(n))}
משמעו שלכל
n
≥
n
0
,
f
{\displaystyle \displaystyle n\geq n_{0,f}}
,
f
(
n
)
≥
c
f
⋅
g
(
n
)
{\displaystyle \displaystyle f(n)\geq c_{f}\cdot g(n)}
, עבור
n
0
,
f
,
c
f
>
0
{\displaystyle \displaystyle n_{0,f},c_{f}>0}
כלשהם.
g
(
n
)
=
Ω
(
h
(
n
)
)
{\displaystyle \displaystyle g(n)=\Omega (h(n))}
משמעו שלכל
n
≥
n
0
,
g
{\displaystyle \displaystyle n\geq n_{0,g}}
,
g
(
n
)
≥
c
g
⋅
g
(
n
)
{\displaystyle \displaystyle g(n)\geq c_{g}\cdot g(n)}
, עבור
n
0
,
g
,
c
g
>
0
{\displaystyle \displaystyle n_{0,g},c_{g}>0}
כלשהם.
לכן:
לכל
n
≥
max
{
n
0
,
f
,
n
0
,
g
}
{\displaystyle \displaystyle n\geq \max\{n_{0,f},n_{0,g}\}}
,
f
(
n
)
≥
c
f
⋅
f
(
n
)
{\displaystyle \displaystyle f(n)\geq c_{f}\cdot f(n)}
.
לכל
n
≥
max
{
n
0
,
f
,
n
0
,
g
}
{\displaystyle \displaystyle n\geq \max\{n_{0,f},n_{0,g}\}}
,
g
(
n
)
≥
c
g
⋅
g
(
n
)
{\displaystyle \displaystyle g(n)\geq c_{g}\cdot g(n)}
.
מקבלים את התוצאה ע"י הצבת שני האי-שוויונים האחרונים אחד בשני:
לכל
n
≥
max
{
n
0
,
f
,
n
0
,
g
}
{\displaystyle \displaystyle n\geq \max\{n_{0,f},n_{0,g}\}}
,
f
(
n
)
≥
c
f
⋅
c
g
⋅
h
(
n
)
{\displaystyle \displaystyle f(n)\geq c_{f}\cdot c_{g}\cdot h(n)}
.
עוד כללים בסדרי גדילה
עריכה
f
(
n
)
,
g
(
n
)
{\displaystyle \displaystyle f(n),g(n)}
הן פונקציות חיוביות ממש. אנא הוכח או הפרך כ"א מהכללים הבאים:
f
(
n
)
=
O
(
g
(
n
)
)
⇒
g
(
n
)
=
O
(
f
(
n
)
)
{\displaystyle \displaystyle f(n)=O(g(n))\Rightarrow g(n)=O(f(n))}
f
(
n
)
+
g
(
n
)
=
Θ
(
m
i
n
{
f
(
n
)
,
g
(
n
)
}
)
{\displaystyle \displaystyle f(n)+g(n)=\Theta (min\{f(n),g(n)\})}
f
(
n
)
=
O
(
g
(
n
)
)
⇒
2
f
(
n
)
=
O
(
2
g
(
n
)
)
{\displaystyle \displaystyle f(n)=O(g(n))\Rightarrow 2^{f(n)}=O(2^{g(n)})}
f
(
n
)
+
Θ
(
f
(
n
)
)
=
Θ
(
f
(
n
)
)
{\displaystyle \displaystyle f(n)+\Theta (f(n))=\Theta (f(n))}
f
(
n
)
=
2
log
(
n
)
,
g
(
n
)
=
(
log
(
n
)
)
log
(
n
)
⇒
f
(
n
)
=
O
(
g
(
n
)
)
{\displaystyle \displaystyle f(n)=2^{\log(n)},g(n)=(\log(n))^{\log(n)}\Rightarrow f(n)=O(g(n))}
(לתזכורת,
f
(
n
)
,
g
(
n
)
{\displaystyle \displaystyle f(n),g(n)}
הן פונקציות חיוביות ממש.)
לא נכון. נפריך ע"י
f
(
n
)
=
n
2
,
g
(
n
)
=
n
3
{\displaystyle \displaystyle f(n)=n^{2},g(n)=n^{3}}
.
לא נכון. נפריך ע"י
f
(
n
)
=
n
2
,
g
(
n
)
=
n
3
{\displaystyle \displaystyle f(n)=n^{2},g(n)=n^{3}}
.
לא נכון. נפריך ע"י
f
(
n
)
=
2
⋅
n
,
g
(
n
)
=
n
{\displaystyle \displaystyle f(n)=2\cdot n,g(n)=n}
.
לכל פונקציה
g
(
n
)
=
Θ
(
f
(
n
)
)
{\displaystyle \displaystyle g(n)=\Theta (f(n))}
מתקיים ש
c
″
⋅
f
(
n
)
≤
g
(
n
)
≤
c
′
⋅
f
(
n
)
{\displaystyle \displaystyle c''\cdot f(n)\leq g(n)\leq c'\cdot f(n)}
, עבור
c
″
,
c
′
>
0
{\displaystyle \displaystyle c'',c'>0}
כלשהם, החל מ
n
0
>
0
{\displaystyle \displaystyle n_{0}>0}
כלשהו. לכן, החל מאותו
n
0
{\displaystyle \displaystyle n_{0}}
,
(
1
+
c
″
)
⋅
f
(
n
)
≤
f
(
n
)
+
g
(
n
)
≤
(
1
+
c
′
)
⋅
f
(
n
)
,
{\displaystyle \displaystyle (1+c'')\cdot f(n)\leq f(n)+g(n)\leq (1+c')\cdot f(n),}
מה שמוכיח את הטענה.
l
i
m
n
→
∞
[
f
(
n
)
/
g
(
n
)
]
=
0
{\displaystyle \displaystyle lim_{n\rightarrow \infty }[f(n)/g(n)]=0}
(לפי כללים פשוטים מחדו"א),
ולכן עפ"י כללי הגבולות שראינו, הטענה נכונה.
אנא הוכח או הפרך כ"א מהכללים הבאים:
f
(
n
)
+
g
(
n
)
=
Θ
(
max
{
f
(
n
)
,
g
(
n
)
}
)
{\displaystyle \displaystyle f(n)+g(n)=\Theta (\max\{f(n),g(n)\})}
f
(
n
)
−
g
(
n
)
=
Θ
(
max
{
f
(
n
)
,
g
(
n
)
}
)
{\displaystyle \displaystyle f(n)-g(n)=\Theta (\max\{f(n),g(n)\})}
נשים לב שתמיד מתקיים:
f
(
n
)
+
g
(
n
)
≥
max
{
f
(
n
)
,
g
(
n
)
}
{\displaystyle \displaystyle f(n)+g(n)\geq \max\{f(n),g(n)\}}
,
f
(
n
)
+
g
(
n
)
≤
2
⋅
max
{
f
(
n
)
,
g
(
n
)
}
{\displaystyle \displaystyle f(n)+g(n)\leq 2\cdot \max\{f(n),g(n)\}}
.
הטענה, לכן, נכונה.
ניקח
f
(
n
)
=
n
+
1
{\displaystyle \displaystyle f(n)=n+1}
, ו
g
(
n
)
=
n
{\displaystyle \displaystyle g(n)=n}
. קל לראות ש
f
(
n
)
−
g
(
n
)
=
1
≠
Θ
(
n
)
=
Θ
(
max
{
f
(
n
)
,
g
(
n
)
}
)
{\displaystyle \displaystyle f(n)-g(n)=1\neq \Theta (n)=\Theta (\max\{f(n),g(n)\})}
: הוכחנו בכיתה ש
n
2
≠
O
(
n
)
{\displaystyle \displaystyle n^{2}\neq O(n)}
, ובאותו אופן בדיוק אפשר להראות ש
1
≠
Ω
(
n
)
{\displaystyle \displaystyle 1\neq \Omega (n)}
. הטענה, לכן, איננה נכונה.
f
(
n
)
{\displaystyle \displaystyle f(n)}
ו
g
(
n
)
{\displaystyle \displaystyle g(n)}
הן פונקציות חיוביות ממש,
והגבול
l
i
m
n
→
∞
[
f
(
n
)
/
g
(
n
)
]
{\displaystyle \displaystyle lim_{n\rightarrow \infty }[f(n)/g(n)]}
קיים ושווה ל
l
i
m
n
→
∞
[
f
(
n
)
/
g
(
n
)
]
=
c
{\displaystyle \displaystyle lim_{n\rightarrow \infty }[f(n)/g(n)]=c}
. אנא הוכח או
הפרך את הטענה הבאה: אם
c
=
0
{\displaystyle \displaystyle c=0}
או
c
=
∞
{\displaystyle \displaystyle c=\infty }
, אז
f
(
n
)
≠
Θ
(
g
(
n
)
)
{\displaystyle \displaystyle f(n)\neq \Theta (g(n))}
.
הטענה נכונה.
הוכחה: נניח בשלילה שהטענה מוטעית, ואכן
f
(
n
)
=
Θ
(
g
(
n
)
)
{\displaystyle \displaystyle f(n)=\Theta (g(n))}
. עפ"י ההגדרה, לכן, קיימים שני
קבועים
c
″
>
0
{\displaystyle \displaystyle c''>0}
ו
c
′
>
0
{\displaystyle \displaystyle c'>0}
כך שלערכי
n
{\displaystyle \displaystyle n}
גדולים מספיק,
c
″
⋅
g
(
n
)
≤
f
(
n
)
≤
c
′
⋅
g
(
n
)
{\displaystyle \displaystyle c''\cdot g(n)\leq f(n)\leq c'\cdot g(n)}
. נחלק ב
g
(
n
)
{\displaystyle \displaystyle g(n)}
(שימו לב שאין צורך להפוך את סימני
≤
{\displaystyle \displaystyle \leq }
), ונקבל
c
″
≤
f
(
n
)
/
g
(
n
)
≤
c
′
{\displaystyle \displaystyle c''\leq f(n)/g(n)\leq c'}
. מכללים ידועים בחדו"א, הוכחנו כעת שגבול המנה (אם הוא קיים) חסום בין
c
″
{\displaystyle \displaystyle c''}
ל
c
′
{\displaystyle \displaystyle c'}
, בסתירה לנתון בשאלה.
באופן דומה למדי, נוכל להוכיח את המשפט הבא:
יחסים בין פולינומים
עריכה
הכוון השני לכללי הגבולות
עריכה
f
(
n
)
{\displaystyle \displaystyle f(n)}
היא פונקציה חיובית ממש, מונוטונית עולה, ושואפת לאינסוף. אנא הוכח שקיימת פונקציה
g
(
n
)
{\displaystyle \displaystyle g(n)}
כך שמתקיים
f
(
n
)
=
Θ
(
g
(
n
)
)
{\displaystyle \displaystyle f(n)=\Theta (g(n))}
אבל הגבול
f
(
n
)
/
g
(
n
)
{\displaystyle \displaystyle f(n)/g(n)}
אינו קיים.
נבנה את הפונקציה
g
(
n
)
{\displaystyle \displaystyle g(n)}
כך:
ראשית נקבע צמדים של נקודות.
נקבע
n
0
=
1
{\displaystyle \displaystyle n_{0}=1}
, ו
n
1
{\displaystyle \displaystyle n_{1}}
כנקודה הקטנה ביותר בה
f
(
n
1
)
≥
2
⋅
f
(
n
0
)
{\displaystyle \displaystyle f(n_{1})\geq 2\cdot f(n_{0})}
(חייבת להיות נקודה כזו, כי
f
(
n
)
{\displaystyle \displaystyle f(n)}
שואפת לאינסוף).
נקבע
n
2
=
n
1
+
1
{\displaystyle \displaystyle n_{2}=n_{1}+1}
, ו
n
3
{\displaystyle \displaystyle n_{3}}
כנקודה הקטנה ביותר בה
f
(
n
3
)
≥
2
⋅
f
(
n
2
)
{\displaystyle \displaystyle f(n_{3})\geq 2\cdot f(n_{2})}
(חייבת להיות נקודה כזו, כי
f
(
n
)
{\displaystyle \displaystyle f(n)}
שואפת לאינסוף).
נמשיך כך הלאה: נקבע
n
4
=
n
3
+
1
{\displaystyle \displaystyle n_{4}=n_{3}+1}
, ו
n
5
{\displaystyle \displaystyle n_{5}}
כנקודה הקטנה ביותר בה
f
(
n
5
)
≥
2
⋅
f
(
n
4
{\displaystyle \displaystyle f(n_{5})\geq 2\cdot f(n_{4}}
) (חייבת להיות נקודה כזו, כי
f
(
n
)
{\displaystyle \displaystyle f(n)}
שואפת לאינסוף), וכולי.
כעת נגדיר את
g
(
n
)
{\displaystyle \displaystyle g(n)}
בעזרת הזוגות:
עבור
n
0
≤
n
<
n
1
{\displaystyle \displaystyle n_{0}\leq n<n_{1}}
,
g
(
n
)
=
f
(
n
0
)
{\displaystyle \displaystyle g(n)=f(n_{0})}
;
g
(
n
1
)
=
f
(
n
1
)
/
2
{\displaystyle \displaystyle g(n_{1})=f(n_{1})/2}
.
עבור
n
2
≤
n
<
n
3
{\displaystyle \displaystyle n_{2}\leq n<n_{3}}
,
g
(
n
)
=
f
(
n
2
)
{\displaystyle \displaystyle g(n)=f(n_{2})}
;
g
(
n
3
)
=
f
(
n
3
)
/
2
{\displaystyle \displaystyle g(n_{3})=f(n_{3})/2}
.
עבור
n
4
≤
n
<
n
5
{\displaystyle \displaystyle n_{4}\leq n<n_{5}}
,
g
(
n
)
=
f
(
n
4
)
{\displaystyle \displaystyle g(n)=f(n_{4})}
;
g
(
n
5
)
=
f
(
n
5
)
/
2
{\displaystyle \displaystyle g(n_{5})=f(n_{5})/2}
. נמשיך כך הלאה והלאה.מהבניה קל לראות את הדברים הבאים:
g
(
n
)
{\displaystyle \displaystyle g(n)}
פונקציה מונוטונית עולה.
בכל נקודה ונקודה,
g
(
n
)
{\displaystyle \displaystyle g(n)}
נמצאת בין
f
(
n
)
{\displaystyle \displaystyle f(n)}
ל
f
(
n
)
/
2
{\displaystyle \displaystyle f(n)/2}
. לכן
g
(
n
)
=
Θ
(
f
(
n
)
)
{\displaystyle \displaystyle g(n)=\Theta (f(n))}
בהכרח.
יש אינסוף נקודות בהן
f
(
n
)
=
g
(
n
)
{\displaystyle \displaystyle f(n)=g(n)}
, אבל גם אינסוף נקודות בהן
g
(
n
)
=
f
(
n
)
/
2
{\displaystyle \displaystyle g(n)=f(n)/2}
, ולכן לא ייתכן שהגבול
f
(
n
)
/
g
(
n
)
{\displaystyle \displaystyle f(n)/g(n)}
קיים.
הפונקציה
T
(
n
)
{\displaystyle \displaystyle T(n)}
נתונה על ידי הנוסחה.
T
(
n
)
=
∑
i
=
1
n
∑
j
=
i
n
[
Θ
(
j
−
i
+
1
)
]
{\displaystyle \displaystyle T(n)=\sum _{i=1}^{n}\sum _{j=i}^{n}[\Theta (j-i+1)]}
.
אנא הוכח
T
(
n
)
=
Θ
(
n
3
)
{\displaystyle \displaystyle T(n)=\Theta (n^{3})}
.
רמז
נסה להוכיח זאת באותו אופן בו הוכחנו
∑
i
=
1
n
[
log
(
i
)
]
=
Θ
(
n
⋅
log
(
n
)
)
{\displaystyle \displaystyle \sum _{i=1}^{n}[\log(i)]=\Theta (n\cdot \log(n))}
. כלומר:
הוכח בנפרד חסמי
O
{\displaystyle \displaystyle O}
ו
Ω
{\displaystyle \displaystyle \Omega }
.
ערוך מניפולציות על איבר הטור הכללי ועל גבולות הסיכום כך שיתקבל איבר טור שאינו תלוי בגבולות הסיכום (ולכן ניתן יהיה להוציאו מחוץ לסכום).
נשתמש באותו הרעיון בו השתמשתנו כדי לנתח טור של לוגריתמים .
ראשית נראה כי
f
(
n
)
=
O
(
n
3
)
{\displaystyle \displaystyle f(n)=O(n^{3})}
.
הוכחה:
f
(
n
)
=
∑
i
=
1
n
∑
j
=
i
n
[
Θ
(
j
−
i
+
1
)
]
≤
∑
i
=
1
n
∑
j
=
1
n
[
Θ
(
n
)
]
=
Θ
(
n
3
)
{\displaystyle \displaystyle f(n)=\sum _{i=1}^{n}\sum _{j=i}^{n}[\Theta (j-i+1)]\leq \sum _{i=1}^{n}\sum _{j=1}^{n}[\Theta (n)]=\Theta (n^{3})}
.
כעת נראה כי
f
(
n
)
=
Ω
(
n
3
)
{\displaystyle \displaystyle f(n)=\Omega (n^{3})}
.
הוכחה:
f
(
n
)
=
∑
i
=
1
n
∑
j
=
i
n
[
Θ
(
j
−
i
+
1
)
]
≥
∑
i
=
1
n
/
4
∑
j
=
i
n
[
Θ
(
j
−
i
+
1
)
]
≥
∑
i
=
1
n
/
4
∑
j
=
3
n
/
4
n
[
Θ
(
j
−
i
+
1
)
]
{\displaystyle \displaystyle f(n)=\sum _{i=1}^{n}\sum _{j=i}^{n}[\Theta (j-i+1)]\geq \sum _{i=1}^{n/4}\sum _{j=i}^{n}[\Theta (j-i+1)]\geq \sum _{i=1}^{n/4}\sum _{j=3n/4}^{n}[\Theta (j-i+1)]}
.
נשים לב שכאשר
i
{\displaystyle \displaystyle i}
בתחום
1
,
…
,
n
/
4
{\displaystyle \displaystyle 1,\ldots ,n/4}
ו
j
{\displaystyle \displaystyle j}
בתחום
3
n
/
4
,
…
,
n
{\displaystyle \displaystyle 3n/4,\ldots ,n}
,
אז
Θ
(
j
−
i
+
1
)
=
Ω
(
n
/
2
)
=
Ω
(
n
)
{\displaystyle \displaystyle \Theta (j-i+1)=\Omega (n/2)=\Omega (n)}
.
לכן נקבל
f
(
n
)
≥
∑
i
=
1
n
/
4
∑
j
=
3
n
/
4
n
[
Ω
(
n
)
]
=
Θ
(
n
3
)
{\displaystyle \displaystyle f(n)\geq \sum _{i=1}^{n/4}\sum _{j=3n/4}^{n}[\Omega (n)]=\Theta (n^{3})}
.
f
(
n
)
=
∑
i
=
1
n
∑
j
=
i
n
[
Θ
(
j
−
i
+
1
)
]
{\displaystyle \displaystyle f(n)=\sum _{i=1}^{n}\sum _{j=i}^{n}[\Theta (j-i+1)]}
.
נשים לב שעבור ערך
i
{\displaystyle \displaystyle i}
כלשהו, נוכל לבצע את החלפת המשתנים
j
′
=
j
−
i
{\displaystyle \displaystyle j'=j-i}
, ונקבל
∑
j
=
i
n
[
Θ
(
j
−
i
+
1
)
]
=
∑
j
′
=
0
n
−
i
[
Θ
(
j
′
+
1
)
]
=
∑
j
′
=
0
n
−
i
[
Θ
(
j
′
)
]
=
Θ
(
(
n
−
i
)
2
)
{\displaystyle \displaystyle \sum _{j=i}^{n}[\Theta (j-i+1)]=\sum _{j'=0}^{n-i}[\Theta (j'+1)]=\sum _{j'=0}^{n-i}[\Theta (j')]=\Theta ((n-i)^{2})}
.
נציב זאת חזרה בסכום הכפול:
f
(
n
)
=
∑
i
=
1
n
∑
j
=
i
n
[
Θ
(
j
−
i
+
1
)
]
=
∑
i
=
1
n
[
(
n
−
i
)
2
]
{\displaystyle \displaystyle f(n)=\sum _{i=1}^{n}\sum _{j=i}^{n}[\Theta (j-i+1)]=\sum _{i=1}^{n}[(n-i)^{2}]}
.
נבצע החלפת משתנים
i
′
=
n
−
i
{\displaystyle \displaystyle i'=n-i}
, ונקבל:
f
(
n
)
=
∑
i
=
1
n
[
(
n
−
i
)
2
]
=
∑
i
′
=
0
n
−
1
[
i
′
2
]
=
Θ
(
n
3
)
{\displaystyle \displaystyle f(n)=\sum _{i=1}^{n}[(n-i)^{2}]=\sum _{i'=0}^{n-1}[i'^{2}]=\Theta (n^{3})}
.
חסם על טור לבניית ערימה בינרית ממערך
עריכה
אנא הוכח ש
∑
j
=
1
h
[
2
−
j
Θ
(
j
)
]
=
Θ
(
1
)
{\displaystyle \displaystyle \sum _{j=1}^{h}[2^{-j}\Theta (j)]=\Theta (1)}
.
רמז
חלק את הטור לשני טורים; הראשון יהיה טור קצר המכיל מספר קבוע של איברים, והשני יהיה טור ארוך יותר. חסום את הטור השני על ידי טור הנדסי.
מצד אחד, כל טור גדול לפחות כמו איברו הראשון. מכאן נקבל:
∑
j
=
1
h
[
2
−
j
Θ
(
j
)
]
≥
[
2
−
1
Θ
(
1
)
]
≥
Θ
(
1
)
{\displaystyle \displaystyle \sum _{j=1}^{h}[2^{-j}\Theta (j)]\geq [2^{-1}\Theta (1)]\geq \Theta (1)}
ולכן הטור המקורי הוא
Ω
(
1
)
{\displaystyle \displaystyle \Omega (1)}
.
מצד שני, נקבל
∑
j
=
1
h
[
2
−
j
Θ
(
j
)
]
≤
∑
j
=
1
∞
[
2
−
j
Θ
(
j
)
]
=
Θ
(
∑
j
=
1
∞
[
2
−
j
j
]
)
{\displaystyle \displaystyle \sum _{j=1}^{h}[2^{-j}\Theta (j)]\leq \sum _{j=1}^{\infty }[2^{-j}\Theta (j)]=\Theta \left(\sum _{j=1}^{\infty }[2^{-j}j]\right)}
,
ולכן נחסום מלמעלה את
∑
j
=
1
∞
[
2
−
j
j
]
{\displaystyle \displaystyle \sum _{j=1}^{\infty }[2^{-j}j]}
.
עבור ערכי
j
{\displaystyle \displaystyle j}
מספיק גדולים,
2
−
j
j
<
1.5
−
j
{\displaystyle \displaystyle 2^{-j}j<1.5^{-j}}
(קל לראות זאת מל'וספיטל, לדוגמה). נגדיר את
k
{\displaystyle \displaystyle k}
כאינדקס הראשון בו
2
−
k
k
<
1.5
−
k
{\displaystyle \displaystyle 2^{-k}k<1.5^{-k}}
.
נקבל
∑
j
=
1
∞
[
2
−
j
j
]
=
∑
j
=
1
k
−
1
[
2
−
j
j
]
+
∑
j
=
k
∞
[
2
−
j
j
]
≤
O
(
1
)
+
∑
j
=
k
∞
[
1.5
−
j
]
≤
O
(
1
)
+
∑
j
=
1
∞
[
1.5
−
j
]
=
O
(
1
)
+
O
(
1
)
=
O
(
1
)
{\displaystyle \displaystyle \sum _{j=1}^{\infty }[2^{-j}j]=\sum _{j=1}^{k-1}[2^{-j}j]+\sum _{j=k}^{\infty }[2^{-j}j]\leq O(1)+\sum _{j=k}^{\infty }[1.5^{-j}]\leq O(1)+\sum _{j=1}^{\infty }[1.5^{-j}]=O(1)+O(1)=O(1)}