pythainlp/thai_wikipedia_clean_20230101 huggingface dataset:
out.backward(retain_graph=True) # calculate gradient using
x.data.sub_(alpha * x.grad.data) # x = x - alpha * f'(x)
x.grad.data.zero_ # setting gradient back to zero again
print(x) # สุดท้ายแล้วจะได้ค่า x = 2 ที่ทำให้ฟังก์ชันมีค่าต่ำที่สุด
นาวาเอก
นาวาเอก (คำย่อ: น.อ.) เป็นยศทางกองทัพเรือที่ถูกใช้สำหรับราชนาวีที่มีการพูดภาษาอังกฤษมากที่สุด เมื่อเทียบกับกองทัพบกยศนี้เทียบได้กับยศพันเอก และเทียบกับกองทัพอากาศจะได้ยศนาวาอากาศเอก ในรหัสยศเนโท ยศนาวาเอกจะใช้รหัส OF-5 แม้ทางกองทัพสหรัฐจะใช้เป็นรหัสยศ O-6
บางครั้งถูกเรียกชื่อยศนี้ว่า "ship-of-the-line captain" (เช่น ฝรั่งเศส, อาร์เจนตินา, สเปน), "captain of sea and war" (เช่น โปรตุเกส), "captain at sea" (เช่น เยอรมนี, เนเธอร์แลนด์) และ "captain of the first rank" (รัสเซีย)
กองเรือทะเลดำ
กองเรือทะเลดำ (, "Chernomorsky flot") เป็นกองเรือของกองทัพเรือรัสเซีย ในทะเลดำ, ทะเลเมดิเตอร์เรเนียน และ ทะเลอะซอฟ
เจ้าชายโปติออมกินทรงสถาปนากองเรือทะเลดำขึ้นในวันที่ 13 พฤษภาคม 1783 กองเรือได้ถูกโอนเปลี่ยนยังสหพันธ์สาธารณรัฐสังคมนิยมโซเวียตรัสเซีย ต่อมาคือ สหภาพโซเวียต ในปี 1922 โดยเป็นส่วนหนึ่งของกองทัพเรือโซเวียต หลังจากการล่มสลายของสหภาพโซเวียตในเดือน ธันวาคม 1991 กองเรือทะเลดำและเรือส่วนใหญ่ได้ถูกโอนเปลี่ยนยังสหพันธรัฐรัสเซีย
กองบัญชาการและที่ตั้งหลักอย่างเป็นทางการของกองเรือทะเลดำตั้งอยู่ในเมืองเซวัสโตปอล ซึ่งเป็นส่วนหนึ่งของประเทศยูเครน "โดยนิตินัย" แต่เป็นส่วนหนึ่งของประเทศรัสเซีย "โดยพฤตินัย" ส่วนที่เหลือของกองเรือและยานพาหนะจะอยู่ในสถานที่ต่าง ๆ บนทะเลดำ และ ทะเลอะซอฟ เช่น ดินแดนครัสโนดาร์, แคว้นรอสตอฟ และ ไครเมีย ผู้บัญชาการกองเรือทะเลดำคนปัจจุปันคือ พลเรือเอก Aleksandr Vitko โดยเขาดำรงตำแหน่งมาตั้งแต่เดือนเมษายน 2013
Black Sea Fleet
Chernomorsky Flot
มิสออลเนชันส์
มิสออลเนชันส์ (อังกฤษ : Miss All Nations) เป็นการประกวดนางงามระดับนานาชาติที่จัดขึ้นทุกปีในดินแดนเอเชีย โดยจัดขึ้นครั้งแรกในปี 1989 และจัดประกวดเรื่อยๆ จนถึงปี 1990 ในปีถัดไปได้งดจัดประกวด และกลับมาจัดประกวดอีกครั้งจากปี 2010
ผู้ดำรงตำแหน่งคนปัจจุบันคือ เทเลีย Talia จากรัสเซีย ได้รับตำแหน่งเมื่อวันที่ 29 มกราคม ค.ศ. 2019 ณ ประเทศจีน
มิสบีชอินเตอร์เนชันแนลไทยแลนด์
มิสบีชอินเตอร์เนชันแนลไทยแลนด์  เป็นการประกวดความงามชายในประเทศไทย จัดขึ้นเป็นครั้งแรกเมื่อปี พ.ศ. 2554 ซึ่งผู้ชนะการประกวดจะต้องเป็นตัวแทนของประเทศเข้าร่วมการประกวดมิสบิกินี่อินเตอร์เนชันแนล 2011
ยูกะ ซะเอะงุซะ อินเดซิเบล
กองเรือบอลติก
กองเรือบอลติก  เป็นกองเรือของกองทัพเรือรัสเซีย ในทะเลบอลติก
กองเรือบอลติก สถาปนาขึ้นในวันที่ 18 พฤษภาคม 1703 โดยจักรพรรดิปีเตอร์มหาราช โดยเป็นส่วนหนึ่งของกองทัพเรือจักรวรรดิรัสเซีย กองเรือบอลติกเป็นองค์กรของกองทัพเรือรัสเซียที่เก่าแก่ที่สุด กองเรือได้ถูกโอนเปลี่ยนยังสหพันธ์สาธารณรัฐสังคมนิยมโซเวียตรัสเซีย และต่อมาคือ สหภาพโซเวียต ในปี 1922 โดยเป็นส่วนหนึ่งของกองทัพเรือโซเวียต กองเรือยังเป็นที่รู้จักในชื่อของ ดวัจดืยครัสโนซนามิออนนืยบัลตีสกีโฟลต์  เนื่องจากในช่วงยุคโซเวียตกองเรือบอลติกได้รับเครื่องอิสริยาภรณ์ธงแดง 2 ครั้ง หลังจากการล่มสลายของสหภาพโซเวียตในเดือน ธันวาคม 1991 กองเรือบอลติกได้ถูกโอนเปลี่ยนยังสหพันธรัฐรัสเซีย โดยกลับไปใช้ชื่อเดิมในฐานะเป็นส่วนหนึ่งของกองทัพเรือรัสเซีย
กองบัญชาการของกองเรือบอลติกตั้งอยู่ในเมืองคาลีนินกราด ซึ่งฐานทัพหลักตั้งอยู่ในเมืองบัลตีสค์ โดยทั้งสองอยู่ในแคว้นคาลีนินกราด และมีฐานทัพอื่นตั้งอยู่ในเมืองโครนสตัดต์, เซนต์ปีเตอร์สเบิร์ก ในอ่าวฟินแลนด์
Baltiysky Flot
คาลินินกราด
มีฮาอิล อีวาโนวิซ คาลีนิน
แชสตี บาเลสเตรอส
แชสตี้ โรส บาเลสเตรอส ( เกิดวันที่ 3 มกราคม ค.ศ. 1981) หรือ แชสตี้ บาเลสเตรอส  เธอเป็นนักแสดงชาวแคนาดา และเธอมีบรรพบุรุษเป็นชาวฟิลิปปินส์ด้วย ผลงานเด่นๆของเธอคือเรื่อง "Smallville", "Supernatural", "Psych", "Sanctuary", "Ray Donovan", "The Ranch" และ "How I Met Your Mother"
ดี-ฮีป
เป็นการคิดค้นโดย Johnson (ปี 1975) D- Heap , D-ary Heap , m-ary Heap หรือ k-ary Heap คือ Heap ที่มี children node ไม่เกิน d node ซึ่งลำดับความสำคัญของแต่ละโหนดสูงกว่าลำดับความสำคัญของ children node
code D-ary Heap.
class D_aryHeap:
def __init__(self, d):
self.items = []
self.d = d
def size(self):
return len(self.items)
def parent(self, i):
return (i - 1)//self.d
def child(self, index, position):
return index*self.d + (position + 1)
def get(self, i):
return self.items[i]
def get_max(self):
if self.size == 0:
return self.items[0]
def extract_max(self):
largest = self.get_max
self.items[0] = self.items[-1]
del self.items[-1]
self.max_heapify(0)
return largest
def max_heapify(self, i):
for j in range(self.d):
c = self.child(i, j)
if (c &lt; self.size and self.get(c) &gt; self.get(largest)):
largest = c
if (largest != i):
self.swap(largest, i)
self.max_heapify(largest)
def swap(self, i, j):
self.items[i], self.items[j] = self.items[j], self.items[i]
def insert(self, key):
index = self.size
self.items.append(key)
while (index != 0):
p = self.parent(index)
if self.get(p) &lt; self.get(index):
self.swap(p, index)
index = p
return self.items
def show(self):
return self.items[:]
testcase D-ary Heap.
from daryheap2 import *
d=3
dheap=D_aryHeap(d)
dheap.insert(2)
dheap.insert(7)
dheap.insert(10)
dheap.insert(1)
dheap.insert(5)
dheap.insert(6)
dheap.insert(8)
result=[10, 8, 7, 1, 2, 5, 6]
assert dheap.show==result
dheap.insert(11)
dheap.insert(13)
dheap.insert(16)
dheap.insert(4)
dheap.extract_max
result=[13, 11, 6, 8, 2, 4]
dheap.insert(9)
dheap.insert(19)
dheap.insert(18)
dheap.insert(25)
result=25
assert dheap.get_max==result
dheap.insert(31)
dheap.insert(23)
result=9
assert dheap.size==result
def test_case5:
d = 3
dheap = D_aryHeap(d)
dheap.insert(14)
dheap.insert(22)
dheap.insert(3)
result=7
assert dheap.get(x)==result
เนื่องจากหากรณีตำแหน่งที่ต้องการ ,กรณีหาค่าที่มากที่สุด ,กรณีแสดงข้อมูลไม่มีbest case และworst case เนื่องจากเป็นO(1)
[[หมวดหมู่:ฮีป (โครงสร้างข้อมูล)]]
พันธกานต์รัก
พันธกานต์รัก เป็นละครโทรทัศน์แนว โรแมนติก คอมเมดี้ ดราม่า บทประพันธ์โดย ผักบุ้ง บทโทรทัศน์ อภิวัฒน์ เล่าสกุล หรือเล่าเต็ง ผลิตโดย บริษัท ปรากฏการณ์ดี จำกัด กำกับการแสดงโดย ตรัยยุทธ กิ่งภากรณ์ นำแสดงโดยอาทิตย์ ตั้งวิบูลย์พาณิชย์, มุกดา นรินทร์รักษ์, รณเดช วงศาโรจน์, ณัฐรินทร์ สุวรรณเลิศ, ณัฐชา นวลแจ่ม, ปิติพน พรตรีสัตย์ และ สิรินทร์ ก่อเกียรติ ออกอากาศทุกวันจันทร์-อังคาร เวลา 20.15 - 22.25 น. เริ่มตอนแรกวันจันทร์ที่ 30 เมษายน พ.ศ. 2561 ถึงวันอังคารที่ 12 มิถุนายน พ.ศ. 2561 ต่อจากละครเรื่อง "เสน่หามายา"
อาทิตย์ ตั้งวิบูลย์พาณิชย์ และมุกดา นรินทร์รักษ์ กลับมาแสดงคู่กันอีกครั้งหลังจากเคยแสดงร่วมกันในละครเรื่อง "ขมิ้นกับปูน" ตอนแรกมีเรตติ้งทั่วประเทศ 4.6 ละครออกฉายเวลาเดียวกับ "ลิขิตรัก" ของช่อง 3 นำแสดงโดยณเดชน์ คูกิมิยะ และอุรัสยา เสปอร์บันด์ แต่เรตติ้งละคร "พันธกานต์รัก" สามารถทำได้ดีกว่า
หวงเย่อหัว
การชักตัวอย่างเรซัฟวาร์
Reservoir sampling เป็นกลุ่มของอัลกอริทึมแบบสุ่ม สำหรับการสุ่มเลือกตัวอย่าง "k" จากรายการ "S" ที่มี "n" รายการ โดยที่ "n" เป็นจำนวนที่มากหรือไม่ทราบค่า โดยปกติ "n" มีขนาดใหญ่พอที่ไม่พอดีกับหน่วยความจำหลัก ตัวอย่างเช่นรายการข้อความค้นหาใน Google และ Facebook
ดังนั้นเราจึงรับอาร์เรย์ขนาดใหญ่ของตัวเลข (เพื่อให้ง่ายขึ้น) และเราจำเป็นต้องเขียนฟังก์ชันที่มีประสิทธิภาพเพื่อสุ่มเลือกหมายเลข k ที่ 1 &lt;= k &lt;= n ให้อาร์เรย์อินพุตเป็น stream[]
วิธีง่ายๆคือการสร้างอาร์เรย์ reservoir[] ขนาดสูงสุด k สุ่มเลือกรายการจาก stream[0..n-1] ทีละรายการ หากรายการที่เลือกไม่ได้เลือกไว้ก่อนหน้านี้ แล้วใส่ไว้ใน reservoir[] หากต้องการตรวจสอบว่ามีการเลือกรายการก่อนหน้าหรือไม่ เราจำเป็นต้องค้นหารายการใน reservoir[]
ความซับซ้อนของเวลาของขั้นตอนนี้จะเป็น O(k)² อาจมีค่ามากถ้า k มีขนาดใหญ่ นอกจากนี้ยังไม่ได้ผลถ้าอินพุทอยู่ในรูปแบบของสตรีม
สามารถแก้ไขได้ในเวลา O(n) โซลูชันนี้เหมาะกับการป้อนข้อมูลในรูปแบบของสตรีม
ตัวอย่าง : Sample size 10.
สมมติว่าเราเห็นลำดับรายการหนึ่งทีละรายการ เราต้องการที่จะเก็บสิบรายการในหน่วยความจำ และเราต้องการให้พวกเขาได้รับเลือกโดยสุ่มจากลำดับ ถ้าเราทราบจำนวนรวมของรายการ (n) จากนั้นการแก้ปัญหาจะเป็นเรื่องง่าย: เลือกดัชนีที่แตกต่างกันสิบรายการระหว่าง 1 ถึง n กับความน่าจะเป็นเท่ากันและเก็บ i-th ไว้ ปัญหาคือเราไม่ทราบ n ล่วงหน้าเสมอ ทางออกที่เป็นไปได้คือ
เก็บสิบรายการแรกไว้ในหน่วยความจำ
เมื่อรายการที่ i-th มาถึง (for i &gt; 10):
ดังนั้น:
Reservoir with Random Sort.
อัลกอริธึมเรซัฟวาร์แบบง่ายๆสามารถออกแบบโดยใช้การจัดเรียงแบบสุ่ม และดำเนินการโดยใช้โครงสร้างข้อมูลคิวลำดับความสำคัญ อัลกอริทึมนี้กำหนดจำนวนสุ่มเป็นคีย์แต่ละรายการและเก็บรักษา k รายการที่มีค่าต่ำสุดสำหรับคีย์ ในสาระสำคัญนี้เทียบเท่ากับการกำหนดหมายเลขสุ่มให้แต่ละรายการเป็นคีย์ การเรียงลำดับรายการโดยใช้คีย์เหล่านี้และรับรายการ k ด้านบน เวลาทำงานที่แย่ที่สุดของอัลกอริทึมคือ O(n log k) ขณะที่เวลาที่ดีที่สุดคือ O(n)
S is a stream of items to sample, R will contain the result
S.Current returns current item in stream
S.Next advances stream to next position
max-priority-queue supports:
Count -&gt; number of items in priority queue
Maximum -&gt; returns maximum key value of all items
Extract-Max -&gt; Remove the item with max key
Insert(key, Item) -&gt; Adds item with specified key
ReservoirSample(S[1..?], R[1..k])
H = new max-priority-queue
while S has data
r = Random(0,1)
if H.Count &lt; k
H.Insert(r, S.Current)
if H.Maximum &gt; r
H.Extract-Max
S.Next
https://www.geeksforgeeks.org/reservoir-sampling/
ปัญหาถุงกระสอบ
ปัญหาถุงกระสอบ (0/1 Knapsack problem) คือ การเลือกหยิบของใส่ถุงโดยให้มีมูลค่ารวมสูงที่สุด แต่น้ำหนักโดยรวมต้องไม่เกินน้ำหนักที่บรรจุได้ โดยของแต่ละชิ้นจะมีน้ำหนักและมูลค่าแตกต่างกันไป ที่เรียกว่า 0/1 นั้นเพราะเมื่อหยิบของจะเป็นก้อนๆ จะไม่แบ่งย่อยเป็นชิ้นๆ แต่ถ้าแบ่งย่อยได้จะเป็นอีกปัญหาหนึ่ง "(fractional knapsack problem)"
- วิธีที่ตรงไปตรงมาที่สุดคือการไล่ทดลอง หยิบ/ไม่หยิบ ของแต่ละชิ้น แล้วหามูลค่ารวมที่มากที่สุดโดยน้ำหนักรวมไม่เกินที่กำหนด
- การใช้ Dynamic programming เข้ามาเพื่อหลีกเลี่ยงการทำซ้ำๆ โดยสร้าง array K[][]
def knapSack(W, wt, val, n):
K = , K[i-1][w])
K[i][w] = K[i-1][w]
return K[n][W]
detohm. 0-1-knapsack-problem-. FINOMENA. 14 May 2018
เอจซาจือบาซือ วีตรา
การสร้างเพาเวอร์เซต
ในทฤษฎีการคำนวณและทฤษฎีออโตมาต้าเป็นการสร้างเซตย่อยของเพาเวอร์เซตเป็นวิธีการมาตรฐานสำหรับการแปลงค่าสถานะจำกัดหรือสถานะที่ไม่จำกัดก็ได้ ซึ่งจำเป็นต่อการใช้ในภาษาทางการ เป็นทฤษฎีที่สำคัญเพราะมีการระบุว่า (NFAs) แม้จะมีความยืดหยุ่นเพิ่มเติมแต่ก็ไม่สามารถรับรู้ภาษาใด ๆ ที่ (DFA) บางตัวไม่สามารถรับรู้ได้นอกจากนี้ยังเป็นสิ่งสำคัญในทางปฏิบัติสำหรับการแปลง (NSAs) ที่ง่ายต่อการสร้างให้เป็น(DFAs) ที่มีประสิทธิภาพมากขึ้น อย่างไรก็ตาม หาก (NFA) มี n สถานะ (DFAs) ที่เป็นผล อาจมีสถานะได้ถึง 2 สถานะตัวเลข ฟังก์ชันเลขชี้กำลังที่มีจำนวนมากบางครั้งอาจทำให้การสร้างเป็นไปไม่ได้สำหรับ (NFAs) ที่มีจำนวนมาก การสร้างบางครั้งเรียกว่า Rabin-Scott powerset construction (หรือpowerset construction) เพื่อแยกความแตกต่างจากโครงสร้างที่คล้ายกันสำหรับออโตมาต้าประเภทอื่น ๆ ได้รับการตีพิมพ์เป็นครั้งแรกโดย Michael O. Rabin และ Dana Scott ในปี 1959
ในการสร้างเพาเวอร์เซตของสถานะทั้งหมดของ (DFA) คือ เพาเวอร์เซตของ Q ของเซ็ตย่อยที่เป็นไปได้ทั้งหมดของ Q อย่างไรก็ตามหลายสถานะของ (DFA) ที่เป็นผลอาจไม่มีประโยชน์เนื่องจากอาจไม่สามารถเข้าถึงได้จาก สถานะเริ่มต้น อีกทางเลือกหนึ่งของการก่อสร้างสร้างเฉพาะสถานะที่สามารถเข้าถึงได้จริง
(NFA) ด้านล่างมี 4 สถานะ สถานะ 1 เป็นค่าเริ่มต้นและสถานะ 3 และ 4 เป็นตัวอักษรที่ประกอบด้วย 2 สัญลักษณ์  คือ 0  และ1 และมีการ ε-moves.
สถานะเริ่มต้นของ (DFA) ที่สร้างขึ้นจาก (NFA) นี้คือชุดของสถานะ (NFA) ทั้งหมดที่สามารถเข้าถึงได้จากสถานะ 1 โดยการε-moves นั่นคือชุด {1,2,3} การเปลี่ยนจาก {1,2,3} โดยใช้สัญลักษณ์ป้อน 0 ต้องเป็นไปตามที่ลูกศรจากสถานะ  1 ถึงสถานะ 2 หรือลูกศรจากสถานะ  3 ถึงสถานะ  4. นอกจากนี้สถานะ ทั้ง 2 และสถานะ 4 ยังไม่ได้ ε-movesดังนั้น T ({1,2,3}, 0) = {2,4} และด้วยเหตุผลเดียวกัน (DFA) ที่สร้างขึ้นทั้งหมดจาก (NFA) มีดังที่แสดงด้านล่างในตัวอย่างนี้เราจะเพาเวอร์เซตซึ่งเท่ากับ 2 ยกกำลัง n และ n = 4 ดังนั้นจะเพาเวอร์เซตทั้งหมด 2 ยกกำลัง 4 = 16 สถานะ ซึ่งได้มีสถานะ 5 สถานะที่สามารถเข้าถึงได้จากสถานะเริ่มต้นของ DFA ส่วนที่เหลืออีก 11 วถานะในเพาเวอร์เซตของชุด(NFA)จะไม่สามารถเข้าถึงได้
ตัวอย่างการเขียนโปรแกรม
def Powerset(data):
for i in data:
newsubsets = [subset + [i] for subset in result]
result.extend(newsubsets)
สถานีวิทยุไทย เพื่อเด็กและครอบครัว
สพล อัศวมั่นคง
สพล อัศวมั่นคง (เกิดเมื่อวันที่ 6 ธันวาคม พ.ศ. 2536)(ชื่อเล่น เกรท) เป็นนักแสดงและนายแบบชาวไทยเกิดที่กรุงเทพมหานคร
สพล เกิดเมื่อวันที่ 6 ธันวาคม พ.ศ. 2536 ที่กรุงเทพมหานคร เป็นนักแสดงชาวไทยและนายแบบ ในอดีตเคยเป็นนักแสดงสังกัดช่อง 7 HD
สพลเคยเป็นเชียร์ลีดเดอร์ธรรมศาสตร์ ในงานฟุตบอลประเพณีจุฬาฯ–ธรรมศาสตร์ ครั้งที่ 70 เขาจบการศึกษาระดับมัธยมจากโรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี) ต่อมาเขาศึกษาระดับปริญญาตรีที่ภาควิชาเทคโนโลยีการจัดการ การจัดการวิศวกรรม สถาบันเทคโนโลยีนานาชาติสิรินธร มหาวิทยาลัยธรรมศาสตร์
เกรท สพล เริ่มเข้าสู่วงการบันเทิงไทยเคยเป็นดีเจคลื่นในวิทยุและได้รับโอกาสเดินประกวดเดินแบบโดยเวทีการประกวด The Cleo Most Eligible Bachelor 2016 และได้รับรางวัลชนะเลิศ จากนั้นมีผลงานถ่ายแบบและการแสดง เช่นมิวสิกวิดีโอเพลง "หลุมรัก" ของศิลปินวงอินสติงก์
มีผลงานแสดงซีรีส์ "รูมอะโลน 2" เป็นที่รู้จักกันในบทบาท "คีย์" และได้รับบทบาท "ป้อง" ในซีรีส์ Bangkok รัก Stories"Bangkok รัก Stories" เมื่อปี 2560 ได้รับโอกาสเข้าร่วมแสดงละครเรื่อง "พ่อยุ่งลุงไม่ว่าง" ในฐานะนักแสดงรับเชิญออกอากาศทางสถานีช่อง 3
ปัจจุบันเขาได้ลงนามสัญญาในฐานะนักแสดงในสังกัดสถานีช่อง 7 HDเขาผลงานละครเรื่อง "รักหวานบ้านวุ่น", "เจ้าสาวช่างยนต์" เป็นต้นปัจจุบันเขายังรับงานละครเรื่อยๆมา
เมื่อในปี 2562 สพลมีผลงานละครเรื่อง "หลงเงาจันทร์" ในฐานะนักแสดงรับเชิญและเป็นที่รู้จักกันในบทบาท พลาทิป หรือ พีท เขามีผลงานภาพยนตร์เรื่อง "แสงกระสือ"และเป็นที่รู้จักกันในบทบาท เจิด แสดงร่วมกับ ภัณฑิรา พิพิธยากร และ โอบนิธิ วิวรรธนวรางค์ ภาพยนตร์เรื่องนี้ออกจากฉายโรงภาพยนตร์เมื่อวันที่ 14 มีนาคม พ.ศ. 2562
เกรท สพลเขา ไม่มีแฟน แต่มีสเปกสาวในฝัน
ล่าสุดสถานะหัวใจของหนุ่ม เกรท สพล คือโสดสนิท ยังไม่มีแฟน ! ซึ่งหนุ่มเกรท เคยให้สัมภาษณ์ว่า เขาไม่ได้ปิดกั้นเรื่องความรัก แต่มุ่งเน้นไปที่การทำงานมากกว่า พร้อมเผยสเปกสาวในฝันว่า ชอบผู้หญิงผมสั้น ยิ้มสวย และมีนิสัยร่าเริงหน้าไม่บูดบึ้ง
เขาถือได้ว่าถือเป็นแฟนคลับตัวยงของสาว ลิซ่า (Lisa) สมาชิกคนไทยของวงไอดอลชื่อดัง BLACKPINK เลยก็ว่าได้ ซึ่งเมื่อปี 2561 หนุ่มเกรท ได้บินไปที่ประเทศเกาหลีใต้ เพื่อแสดงความยินดีในงานรับปริญญาของพี่สาว แต่เจ้าตัวก็ไม่วายที่จะอุดหนุนอัลบั้มวง BLACKPINK พร้อมลงชื่อลุ้นเข้างานแฟนไซน์ด้วย และปรากฏว่าดวงดีได้สิทธิ์เข้าไปขอลายเซ็นถึงบนเวทีกันเลยทีเดียว ยิ่งกว่านั้นตอน BLACKPINK ทัวร์คอนเสิร์ตที่ประเทศไทย หนุ่มเกรท สพล ก็จัดหนักตีตั๋วเข้าชมถึง 3 รอบ เชื่อแล้วว่าเป็นแฟนคลับตัวจริง
วิญญาณนิยม
วิญญาณนิยม หรือ คติการนับถือผี ( จาก "", "ลมหายใจ, วิญญาณ, ชีวิต") คือ ความเชื่อทางศาสนาที่ว่า วัตถุสิ่งของ สถานที่ หรือสัตว์ทั้งหลายต่างมีสารัตถะทางจิตวิญญาณ (spiritual essence) ที่เป็นเอกลักษณ์เฉพาะตน
ลัทธิวิญญาณนิยมเชื่อว่าสรรพวัตถุและสรรพสัตว์ (ซึ่งรวมถึง ต้นไม้ ก้อนหิน ลำธาร สภาพอากาศ งานหัตถกรรมของมนุษย์ และแม้แต่คำพูด) ล้วนแต่มีวิญญาณ มีชีวิต หรือมีเจตจำนง (agency) เป็นของตัวเอง ลัทธิวิญญาณนิยมเป็นศาสนาที่เก่าแก่ที่สุดในโลก โดยมีอยู่ก่อนศาสนาจัดตั้งทุกรูปแบบ และถือกันว่าเป็นมุมมอง/ทัศนคติทางจิตวิญญาณ หรือของความเชื่อเหนือธรรมชาติอย่างแรกที่เกิดขึ้นในโลก ซึ่งพบหลักฐานเกี่ยวกับความเชื่อนี้ย้อนหลังไปถึงยุคหินเก่า ซึ่งเป็นสมัยมนุษย์ยังท่องเที่ยวไปตามพื้นที่ต่าง ๆ เพื่อล่าสัตว์ หรือเก็บรวบรวมของป่า และสื่อสารกับจิตวิญญาณของธรรมชาติ ในแง่นี้ความเชื่อแบบศาสนาเชมัน (shaman) หรือลัทธิที่นับถือพ่อมดหมอผีว่าเป็นผู้ที่สื่อสารกับธรรมชาติได้ จึงมีความเกี่ยวข้องและเป็นส่วนหนึ่งของระบบความเชื่อแบบวิญญาณนิยม ในวิชามานุษยวิทยาว่าด้วยศาสนา"วิญญาณนิยม" เป็นคำที่ใช้เพื่อสื่อถึงระบบความเชื่อดั้งเดิมของชาวพื้นเมือง โดยเฉพาะเวลาที่นำไปเปรียบเทียบกับระบบความเชื่อทางจิตวิญญาณ หรือศาสนาจัดตั้งที่เกิดขึ้นภายหลัง เนื่องจากแต่ละวัฒนธรรมจะมีตำนานความเชื่อ นิทานเทพปกรณัม และพิธีกรรมที่แตกต่างกันไป แนวคิด "วิญญาณนิยม" จึงใช้สื่อถึงสายใยความต่อเนื่องในระดับรากฐานของทัศนคติทางจิตวิญญาณ หรือในเรื่องเหนือธรรมชาติของชนพื้นเมือง ที่ไม่ได้รับอิทธิพลจากความคิดความเชื่อ หรือคำสอนของลัทธิที่มาจากภายนอก จนถึงขนาดว่าบางครั้งทัศนคติทางวิญญาณดังกล่าวอาจจะฝังรากลึกลงไปในระบบความเชื่อของชนพื้นเมืองนั้นมาแต่ปฐมกาล จนทำให้ชนพื้นเมืองดังกล่าวไม่มีคำที่ใช้เรียกระบบความเชื่อนั้นในภาษาของตน
ดัชนีเอฟเอ็ม
ดัชนีเอฟเอ็ม (FM-index) คือการนำเอาข้อความที่เกิดจากการสลับที่อย่างมีรูปแบบด้วย Burrows-Wheeler Transform (BWT) มาหาตำแหน่งของตัวอักษรที่เราต้องการ
1.รับข้อมูลจากการสลับที่ของตัวอักษรจาก BWT ตัวอักษรที่ใส่เข้าไป
เช่น abaaba จะได้ผลเป็น
$abaaba
a$abaab
aaba$ab
aba$aba
abaaba$
ba$abaa
baaba$a
2.ดูคอลัมน์แรกและคอลัมน์สุดท้ายเป็นหลัก
ใช้ตัว $ ในการบอกตำแหน่ง
0 $abaaba 6 $
1 a$abaab 5 a$
2 aaba$ab 2 aaba$
3 aba$aba 3 aba$
4 abaaba$ 0 abaaba$
5 ba$abaa 4 ba$
6 baaba$a 1 baaba$
3.ใส่ตัวอักษรที่ต้องการหาตำแหน่ง
เช่น ตำแหน่งของ ab
หาแถวที่ขึ้นต้นด้วยตัว a และมี b ต่อท้าย
→ a$abaab←
→ aaba$ab←
→ aba$aba
→ abaaba$
4.ต้องการหาตำแหน่ง
เช่น ตำแหน่งของ a
หาแถวที่ขึ้นต้นด้วยตัว ba และมี a ต่อท้าย
→ ba$abaa←
→ baaba$a←
5.ตัดตำแหน่งอื่นออกจะเหลือตำแหน่งที่มีเฉพาะ อยู่ที่ [0,3]
aba$aba 3 aba$
abaaba$ 0 abaaba$
def FM_index(query):
def string_search (query, firstCol, bwtString,saArray,countTable,occTable):
hitSApositions = []
queryLength = len(query)
query = list(query)
initLetter = query.pop
startOld = min(letter_range_in_string(initLetter,firstCol))
endOld = max(letter_range_in_string(initLetter,firstCol))
if queryLength ==1:
hitSApositions = letter_range_in_string(initLetter,firstCol)
while i &lt;= queryLength:
letter = query.pop
startOld = letter_LF(letter,startOld,bwtString,saArray,countTable,occTable)
endOld = letter_LF(letter,endOld,bwtString,saArray,countTable,occTable)
hitSApositions= [startOld,endOld]
for i in range(len(hitSApositions)):
hitSApositions[i]=saArray[hitSApositions[i]]
return list(set(hitSApositions))
result = string_search(query, firstCol, bwtString,saArray,countTable,occTable)
ต้นไม้ 2–3
ในวิทยาการคอมพิวเตอร์ 2–3 tree เป็นโครงสร้างข้อมูลต้นไม้ ซึ่งทุกโหนดที่มี children มี children สอง ( 2 โหนด ) และหนึ่งองค์ประกอบข้อมูลหรือสาม children ( 3 โหนด ) และสององค์ประกอบข้อมูล อ้างอิงจาก Knuth “B – tree ของลำดับที่ 3 คือ 2 – 3 tree ” โหนดที่อยู่ด้านนอกของต้นไม้ ( leaf nodes ) ไม่มี children และ 1 หรือ 2 องค์ประกอบข้อมูล 2 – 3 tree ถูกคิดค้นโดย John Hopcroft ในปีพ. ศ. 2513
2-3 tree มีความสมดุล ซึ่งหมายความว่าด้านขวา, กึ่งกลางและด้านซ้ายแต่ละอันมีข้อมูลเดียวกันหรือใกล้เคียงกับข้อมูลเท่ากัน
โหนดภายในเป็นโหนด 2 ถ้ามีองค์ประกอบข้อมูลและ children สอง
โหนดภายในเป็นโหนด 3 หากมีองค์ประกอบข้อมูลสองชุดและมีลูกสามคน
T เป็น 2-3 tree ถ้าหากมีคำใดข้อหนึ่งต่อไปนี้:
• T ว่างเปล่า กล่าวอีกนัยหนึ่ง T ไม่มีโหนดใด ๆ
• T เป็นโหนด 2 โหนดที่มีองค์ประกอบข้อมูล a. ถ้า T ทิ้งลูก L และขวาไว้ที่ R แล้ว
• L และ R เป็นต้นไม้ที่ไม่ว่างเปล่า 2-3 tree ที่มีความสูงเท่ากัน
• a มากกว่าแต่ละองค์ประกอบใน L; และ
• a น้อยกว่าหรือเท่ากับแต่ละองค์ประกอบข้อมูลใน R
• T คือโหนด 3 ที่มีองค์ประกอบข้อมูล a และ b ซึ่ง a &lt; b. ถ้า T มี child ข้างซ้ายเรียก L , child ตรงกลางเรียก M , และ child ข้างขวา เรียก R
• L, M และ R เป็นต้นไม้ที่ไม่ว่างเปล่า 2-3 ต้นที่มีความสูงเท่ากัน
• a มากกว่าแต่ละองค์ประกอบข้อมูลใน L และน้อยกว่าหรือเท่ากับแต่ละองค์ประกอบข้อมูลใน M; และ
• b มากกว่าแต่ละองค์ประกอบข้อมูลใน M และน้อยกว่าหรือเท่ากับแต่ละองค์ประกอบข้อมูลใน R.
•   ทุกโหนดภายในเป็นโหนด 2 โหนดหรือ 3 โหนด
•   ใบทั้งหมดอยู่ในระดับเดียวกัน
•   ข้อมูลทั้งหมดจะถูกเก็บไว้ในลำดับที่เรียงลำดับ
ค้นหา.
การค้นหารายการในโครงสร้าง 2-3 จะคล้ายกับการค้นหารายการในโครงสร้างการค้นหาแบบไบนารี ( binary search tree)  เนื่องจากมีการสั่งองค์ประกอบข้อมูลในแต่ละโหนดจะมีการค้นหาฟังก์ชันการค้นหาไปยัง subtree ที่ถูกต้องและในที่สุดจะเป็นโหนดที่ถูกต้องซึ่งประกอบด้วยรายการดังกล่าว
1.   ให้ T เป็น 2-3 tree และ d เป็นองค์ประกอบข้อมูลที่เราต้องการหา ถ้า T ว่างเปล่าแล้ว d ไม่อยู่ใน T และเราทำเสร็จแล้ว
2.   ให้ r เป็นรากของ T.
3.   สมมติว่า r คือใบ ถ้า d ไม่อยู่ใน r แล้ว d ไม่อยู่ใน T มิฉะนั้น d อยู่ใน T โดยเฉพาะอย่างยิ่ง d สามารถพบได้ที่โหนดใบ เราไม่จำเป็นต้องทำตามขั้นตอนต่อไปและเราทำเสร็จแล้ว
4.   สมมติว่า r เป็นโหนด 2 โหนดที่มีลูกซ้าย L และลูกขวา R ให้ e เป็นอิลิเมนต์ข้อมูลใน r มีสามกรณี:
-    ถ้า d เท่ากับ e แล้วเราพบ d ใน T และเราทำเสร็จแล้ว
-    ถ้า d &lt;e ให้ตั้ง T ไปที่ L ซึ่งตามความหมายคือต้นไม้ 2-3 ต้นและกลับไปที่ขั้นตอนที่ 2
-    ถ้า d&gt; e ให้ตั้ง T ไปที่ R และกลับไปยังขั้นตอนที่ 2
5.   สมมติว่า r คือโหนด 3 ตัวที่มีลูกซ้าย L, ลูกคนกลาง M และลูกขวา R ให้ a และ b เป็นสององค์ประกอบข้อมูลของ r โดยที่ a b ให้ตั้ง T ไปที่ R และกลับไปยังขั้นตอนที่ 2
การลบ.
การประมวลผลการลบอาจแตกต่างกันระหว่าง 2-3 tree และ BB tree ในกรณีต้นไม้ 2-3 tree จะเป็นดังนี้
1.  หากผู้ปกครองที่มีองค์ประกอบลบมีสาม children ให้ลบองค์ประกอบนั้นและอัปเดตคีย์ของ parent ถ้าค่าลบเป็นค่าที่ใหญ่ที่สุดในกลุ่มพี่น้องให้ลบคีย์เดียวกันกับค่าลบออกจากคีย์ของ parent ถ้าค่าลบอยู่ตรงกลางระหว่าง parent's ให้ลบค่าของคุณจากคีย์หลักและย้าย parent's ขวาไปตรงกลาง ในกรณีด้านซ้ายสุดให้ลบคีย์กลางและเลื่อนตรงกลางไปทางซ้ายและขวาไปตรงกลาง
2.  หากผู้ปกครองที่มีองค์ประกอบลบมี 2 children จะค้นหาพี่น้องของ parent
3.  หากพี่น้องของ parent ที่ดึงข้อมูลมามี 2 children ให้รวมผู้ปกครองและ parent's กันเป็น parent หนึ่งที่มีสาม children
4.  เมื่อรวมเข้าด้วยการดำเนินงาน 3 จะยืนยันได้ว่าจำนวน parents and parents of parents มีค่าเท่ากับ 2 หรือ 3 ถ้ามีเพียง children เดียวให้ทำซ้ำตั้งแต่ 2 เป็นต้นไป
ในกรณีของ BB tree ให้ลบค่าลบก่อนเพื่อตัดสินว่าสภาพของต้นไม้ 2-3 tree มีความพึงพอใจหรือไม่ หากค่าการลบเป็นใบที่มีสององค์ประกอบให้ลบค่านั้นออก ในกรณีอื่น ๆ จะมีการดำเนินการโดยการคำนวณค่ามัธยฐานกับ parent หลังจากลบและทำซ้ำการผสมผสานกับพี่น้องของผู้ปกครองหากเด็กอายุสั้น
การแทรก.
แทรกทำงานโดยการค้นหาตำแหน่งที่เหมาะสมของคีย์และเพิ่มที่นั่น ถ้าโหนดกลายเป็น 4 โหนดโหนดจะถูกแบ่งออกเป็น 2 โหนดและคีย์กลางจะถูกย้ายไปยังพาเรนต์ แผนภาพแสดงให้เห็นถึงกระบวนการ
การจัดลำดับบิต
Bit Manipulation  หรือ การจัดลำดับบิต การจัดการบิตคือการกระทำของอัลกอริทึมการจัดการบิตหรือข้อมูลชิ้นอื่น ๆ ที่สั้นกว่าคำ งานการเขียนโปรแกรมคอมพิวเตอร์ที่ต้องมีการจัดการบิตรวมถึงการควบคุมอุปกรณ์ระดับต่ำการตรวจจับข้อผิดพลาดและอัลกอริทึมการแก้ไขการบีบอัดข้อมูลอัลกอริทึมการเข้ารหัสและการเพิ่มประสิทธิภาพ สำหรับงานอื่น ๆ ส่วนใหญ่ภาษาโปรแกรมสมัยใหม่จะอนุญาตให้โปรแกรมเมอร์ทำงานโดยตรงกับ abstractions แทนที่จะเป็นบิตที่แทน abstractions เหล่านั้น รหัสแหล่งที่จะจัดการบิตจะใช้การดำเนินการบิต: AND, OR, XOR, NOT และบิต shift การดำเนินการกับบิตถูกใช้ในการบีบอัดข้อมูล (ข้อมูลถูกบีบอัดโดยการแปลงจากการแทนหนึ่งไปยังอีกเพื่อลดพื้นที่), การเข้ารหัส (อัลกอริทึมการเข้ารหัสข้อมูลเพื่อความปลอดภัย) ในการเข้ารหัสถอดรหัสหรือบีบอัดไฟล์เราต้องแยกข้อมูลในระดับบิต การทำงานของ Bitwise ทำได้เร็วขึ้นและใกล้เคียงกับระบบและบางครั้งการเพิ่มประสิทธิภาพของโปรแกรมให้อยู่ในระดับดี
Bit Manipulation  ประโยชน์.
การดำเนินการกับบิตถูกใช้ในการบีบอัดข้อมูล (ข้อมูลถูกบีบอัดโดยการแปลงจากการแทนหนึ่งไปยังอีกเพื่อลดพื้นที่), การเข้ารหัส (อัลกอริทึมการเข้ารหัสข้อมูลเพื่อความปลอดภัย) ในการเข้ารหัสถอดรหัสหรือบีบอัดไฟล์เราต้องแยกข้อมูลในระดับบิต การทำงานของ Bitwise ทำได้เร็วขึ้นและใกล้เคียงกับระบบและบางครั้งการเพิ่มประสิทธิภาพของโปรแกรมให้อยู่ในระดับดี
โดยที่ 1 ไบต์ ประกอบด้วย 8 บิตและจำนวนเต็ม หรืออักขระใด ๆ สามารถโดยใช้บิตในคอมพิวเตอร์ เรียกว่า ฟอร์มไบนารี
def set_bit(x,position):
mask = 1 « position # mask is number 1 move to index for position
return x | mask
# x 00000110 (6)
# position 00000101 (5) move number 1 to index 5
# mask 00100000 (32)
# (x) 00000110 (6)
# (mask) | 00100000 (32)
# ans 00100110 (38)
def clear_bit(x,position):
mask = 1 « position
return x &amp; ~mask
# position 00000010 (2)
# mask 00000100 (4)
# ~mask 11111011
# 00000110 x
# &amp; 11111011 ~mask
# ans 00000010
def flip_bit(x,position):
return x ^ mask
# x 01100110
# position 00000010
# mask 00000100
# 01100110 x
# ^ 00000100 mask
#ans 01100010
def is_bit_set(x,position):
shifted = x » position
return shifted &amp; 1
# position 00000101
# shifted 00000011
# 00000011 shifted
# &amp; 00000001 1
#ans 00000001
def modify_bit(x,position,state):
return (x &amp; ~mask) | (-state &amp; mask)
# x 00000110
# state 00000000
# -state 00000000
# x &amp;~ mask 00000010
# -state&amp;mask 00000000
# 00000010 x &amp; ~mask
# | 00000000 -state &amp; mask
def isPowerOfTwo(n):
while(n%2 == 0):
return n == 1
b = isPowerOfTwo(5)
print(b)
&lt;ref group="https://www.hackerearth.com/practice/basic-programming/bit-manipulation/basics-of-bit-manipulation/tutorial/"&gt;Basic of Bit Manipulation&lt;/ref&gt;&lt;ref group="https://www.youtube.com/watch?v=7jkIUgLC29I"&gt;Bit manipulation&lt;/ref&gt;
การคูณลูกโซ่ของเมทริกซ์
Matrix-Chain Multiplication หรือ การคูณเมตริกซ์ ใช้สำหรับการแก้ปัญหาการคูณ matrix ซึ่งการคูณปกติอาจจะมีจำนวนครั้งมากเกินไปหรือมีประสิทธิภาพที่ไม่ดีพอซึ่งการใช้ algorithm นี้เป็นการคูณ matrix อย่างต่อเนื่องเพื่อหารูปแบบการคูณที่ดีที่สุดโดยใช้คุณสมบัติการเปลี่ยนหมวดหมู่การคูณของ matrix
matrix X มีขนาด 10 x 3
matrix Y มีขนาด 3 x 5
matrix Z มีขนาด 5 x 6 จำนวนครั้งของการคูณแบบ (X * Y) * Z คือ
(10*3*5 + 10*5*6) = 450 ครั้ง
ส่วนจำนวนครั้งของการคูณแบบ X * (Y * Z) คือ (3*5*6 + 10*3*6) = 270 ครั้ง จะเห็นได้ว่าการเปลี่ยนหมวดหมู่การคูณช่วยเพิ่มประสิทธิภาพหรือลดจำนวนครั้งการคูณลงได้ เราจึงต้องหารูปแบบของหมวดหมู่ที่ดีที่สุดโดยใช้ Matrix-Chain-Multiplication ทำการคูณ
ถ้าเราต้องการคูณแมทริกซ์จำนวน n ตัว A1A2…An ต้องการหาลำดับการคูณแมทริกซ์ ที่ใช้จำนวนครั้งของการคูณน้อยที่สุด
เช่น n = 3 ต้องการคูณ A1A2A3 เมื่อ A1, A2, A3 มีขนาด10x100, 100x5,  และ 5x50
ตามลำดับ
(A1A2)A3) ต้องใช้จำนวนครั้งของการคูณ = 10*100*5 เพื่อคำนวณ (A1A2)+ 10*5*50 เพื่อคำนวณ ((A1A2)A3)=7,500 ครั้ง
+ 10*100*50 เพื่อคำนวณ (A1(A2A3)) = 75,000 ครั้ง
จะเห็นได้ว่า ((A1A2)A3) ใช้จำนวนครั้งของการคูณน้อยกว่า (A1(A2A3))ถึงสิบเท่า