GUID ไม่ซ้ำกัน 100% หรือไม่
มันจะไม่ซ้ำกันในหลายกระทู้หรือไม่?
GUID ไม่ซ้ำกัน 100% หรือไม่
มันจะไม่ซ้ำกันในหลายกระทู้หรือไม่?
คำตอบ:
ในขณะที่แต่ละ GUID ที่สร้างขึ้นไม่ได้รับประกันว่าจะไม่ซ้ำกันจำนวนรวมของคีย์ที่ไม่ซ้ำกัน (2 128หรือ 3.4 × 10 38 ) มีขนาดใหญ่มากจนความน่าจะเป็นของหมายเลขเดียวกันที่สร้างขึ้นสองครั้งนั้นเล็กมาก ตัวอย่างเช่นลองพิจารณาเอกภพที่สังเกตได้ซึ่งมีดาวประมาณ 5 × 10 22 ดวง; จากนั้นดาวทุกดวงจะมีGUID ที่เป็นเอกลักษณ์ในระดับสากล6.8 × 10 15
เหล่านี้เป็นบทความที่ดีเกี่ยวกับวิธีการสร้าง GUID (สำหรับ. NET) และวิธีที่คุณจะได้รับ guid เดียวกันในสถานการณ์ที่ถูกต้อง
https://ericlippert.com/2012/04/24/guid-guide-part-one/
https://ericlippert.com/2012/04/30/guid-guide-part-two/
https://ericlippert.com/2012/05/07/guid-guide-part-three/
2^128
34,028,236,692,093,846,346,337,460,743,177,000,000
ในทางสถิติหากคุณคำนวณ 1,000 GUID ทุกวินาทีมันยังคงใช้เวลาหลายล้านล้านปีในการได้รับซ้ำ
หากคุณกลัวค่า GUID เดียวกันให้ใส่สองค่าไว้ข้างๆกัน
Guid.NewGuid().ToString() + Guid.NewGuid().ToString();
หากคุณหวาดระแวงเกินไปให้ใส่สามตัว
999999999
ในรูปแบบของคุณฉันคิดว่า Paranoia จะ a-splode Browser ของฉัน
คำตอบง่ายๆคือใช่
เรย์มอนด์เฉินเขียนบทความยอดเยี่ยมเกี่ยวกับ GUID และเหตุใดจึงไม่รับประกันถึงความเป็นเอกลักษณ์ของ guidings บทความไปในเชิงลึกเกี่ยวกับวิธีการสร้าง GUID และข้อมูลที่ใช้เพื่อให้แน่ใจว่ามีเอกลักษณ์ซึ่งควรมีความยาวพอสมควรในการอธิบายว่าทำไมพวกเขาถึง :-)
ในฐานะที่เป็นบันทึกย่อฉันได้เล่นกับ Volume GUID ใน Windows XP นี่เป็นเลย์เอาต์ของพาร์ติชั่นที่คลุมเครือมากด้วยสามดิสก์และสิบสี่โวลุ่ม
\\?\Volume{23005604-eb1b-11de-85ba-806d6172696f}\ (F:)
\\?\Volume{23005605-eb1b-11de-85ba-806d6172696f}\ (G:)
\\?\Volume{23005606-eb1b-11de-85ba-806d6172696f}\ (H:)
\\?\Volume{23005607-eb1b-11de-85ba-806d6172696f}\ (J:)
\\?\Volume{23005608-eb1b-11de-85ba-806d6172696f}\ (D:)
\\?\Volume{23005609-eb1b-11de-85ba-806d6172696f}\ (P:)
\\?\Volume{2300560b-eb1b-11de-85ba-806d6172696f}\ (K:)
\\?\Volume{2300560c-eb1b-11de-85ba-806d6172696f}\ (L:)
\\?\Volume{2300560d-eb1b-11de-85ba-806d6172696f}\ (M:)
\\?\Volume{2300560e-eb1b-11de-85ba-806d6172696f}\ (N:)
\\?\Volume{2300560f-eb1b-11de-85ba-806d6172696f}\ (O:)
\\?\Volume{23005610-eb1b-11de-85ba-806d6172696f}\ (E:)
\\?\Volume{23005611-eb1b-11de-85ba-806d6172696f}\ (R:)
| | | | |
| | | | +-- 6f = o
| | | +---- 69 = i
| | +------ 72 = r
| +-------- 61 = a
+---------- 6d = m
ไม่ใช่ว่า GUID นั้นจะคล้ายกันมาก แต่ความจริงที่ว่า GUID ทั้งหมดนั้นมีสตริง "mario" อยู่ในตัว นั่นเป็นเรื่องบังเอิญหรือมีคำอธิบายเบื้องหลังเรื่องนี้หรือไม่?
ตอนนี้เมื่อgoogling สำหรับส่วนที่ 4ใน GUID ฉันพบประมาณ 125.000 hits ที่มี GUID ระดับเสียง
สรุป:เมื่อพูดถึง Volume GUID พวกเขาจะไม่ซ้ำกับ GUID อื่น ๆ
msiexec
ตนเองโปรแกรมดังกล่าวจะแสดงรายการโปรแกรม MSI GUID ทั้งหมดของโปรแกรม Office 0FF1CE
พวกเขาสะกดทุก ดูเหมือนว่า Microsoft จะมีความเป็นธรรม ... หลวม ... การตีความวิธีสร้าง GUID;)
0FF1CE
GUID จะอยู่ภายใต้หัวข้อ "ความเข้ากันได้ของ NCS ย้อนหลัง" ของ RFC-4122 แต่ก็ไม่น่าเป็นไปได้ที่ Microsoft จะปฏิบัติตามกฎ NCS สำหรับค่าเหล่านั้น
มันไม่ควรเกิดขึ้น อย่างไรก็ตามเมื่อ. NET อยู่ภายใต้การโหลดจำนวนมากเป็นไปได้ที่จะได้รับ guids ที่ซ้ำกัน ฉันมีเว็บเซิร์ฟเวอร์สองแห่งโดยใช้เซิร์ฟเวอร์ sql สองแห่ง ฉันไปรวมข้อมูลและพบว่าฉันมี 15 ล้าน guids และ 7 รายการที่ซ้ำกัน
Guid.NewGuid
สร้าง v4 GUID เสมอ (และมีเสมอ) ทิมต้องมีแหล่งข้อมูลเอนโทรปีที่แย่มาก
ใช่ GUID ควรไม่ซ้ำกันเสมอ มันขึ้นอยู่กับฮาร์ดแวร์และเวลารวมทั้งบิตพิเศษเล็กน้อยเพื่อให้แน่ใจว่ามันไม่ซ้ำกัน ฉันแน่ใจว่ามันเป็นไปได้ในทางทฤษฎีที่จะจบลงด้วยสองสิ่งที่เหมือนกัน แต่ไม่น่าเป็นไปได้มากในสถานการณ์โลกแห่งความเป็นจริง
นี่เป็นบทความที่ยอดเยี่ยมโดย Raymond Chen เกี่ยวกับ Guids:
https://blogs.msdn.com/oldnewthing/archive/2008/06/27/8659071.aspx
Guids มีเอกลักษณ์ทางสถิติ อัตราต่อรองของลูกค้าที่แตกต่างกันสองรายที่สร้าง Guid เดียวกันนั้นมีขนาดเล็กมาก (สมมติว่าไม่มีข้อบกพร่องในรหัสการสร้าง Guid) คุณอาจกังวลเกี่ยวกับตัวประมวลผลที่ผิดพลาดเนื่องจากรังสีคอสมิคและตัดสินใจว่าวันนี้ 2 + 2 = 5
หลายเธรดที่จัดสรร guids ใหม่จะได้รับค่าที่ไม่ซ้ำกัน แต่คุณควรทราบว่าฟังก์ชั่นที่คุณเรียกนั้นปลอดภัยสำหรับเธรด สภาพแวดล้อมแบบนี้มีอะไรบ้าง?
Eric Lippert ได้เขียนบทความเกี่ยวกับ GUID ที่น่าสนใจมาก
มีคอมพิวเตอร์ส่วนบุคคลที่มีการสั่งซื้อ 2 30เครื่องในโลก (และแน่นอนว่ามีอุปกรณ์พกพาหรืออุปกรณ์คอมพิวเตอร์ที่ไม่ใช่พีซีซึ่งมีกำลังการคำนวณในระดับเดียวกันหรือมากกว่า แต่ให้เพิกเฉยต่อสิ่งเหล่านี้) สมมติว่าเราให้พีซีเหล่านั้นทั้งหมดในโลกเป็นงานสร้าง GUID หากแต่ละคนสามารถสร้างพูดได้ 2 20 GUID ต่อวินาทีหลังจากนั้นเพียงประมาณ 2 72วินาที - หนึ่งร้อยห้าสิบล้านล้านปี - คุณจะมีโอกาสสูงมากในการสร้างการชนกับ GUID เฉพาะของคุณ และอัตราต่อรองของการชนจะค่อนข้างดีหลังจากผ่านไปเพียงสามสิบล้านล้านปี
ในทางทฤษฎีไม่มีพวกเขาไม่ได้เป็นเอกลักษณ์ เป็นไปได้ที่จะสร้าง guid ที่เหมือนกันซ้ำ ๆ อย่างไรก็ตามโอกาสที่จะเกิดขึ้นนั้นต่ำมากจนคุณคิดว่ามันไม่เหมือนใคร
ฉันได้อ่านมาก่อนแล้วว่าโอกาสที่จะเหลือน้อยมากที่คุณควรเน้นเรื่องอื่น - เช่นเซิร์ฟเวอร์ของคุณซึ่งติดไฟได้เองหรือข้อบกพร่องอื่น ๆ ในรหัสของคุณ นั่นคือสมมติว่ามันไม่ซ้ำกันและไม่สร้างในรหัสใด ๆ ที่จะ "จับ" ซ้ำกัน - ใช้เวลาของคุณกับสิ่งที่น่าจะเกิดขึ้น (เช่นสิ่งอื่น)
ฉันพยายามอธิบายถึงประโยชน์ของ GUID ให้กับผู้ชมบล็อกของฉัน (ผู้ที่ไม่ใช่สมาชิกในครอบครัว) จากที่นั่น (ผ่านทาง Wikipedia) โอกาสในการสร้าง GUID ที่ซ้ำกัน:
ดูเหมือนจะไม่มีใครพูดถึงคณิตศาสตร์ที่แท้จริงของความน่าจะเป็นที่เกิดขึ้น
ก่อนอื่นสมมติว่าเราสามารถใช้พื้นที่ 128 บิตทั้งหมดได้ (Guid v4 ใช้เพียง 122 บิต)
เรารู้ว่าความน่าจะเป็นโดยทั่วไปของการไม่คัดลอกซ้ำn
คือ:
(1-1 / 2 128 ) (1-2 / 2 128 ) ... (1- (n-1) / 2 128 )
เนื่องจาก 2 128มีขนาดใหญ่กว่าn
มากเราจึงสามารถประมาณสิ่งนี้กับ:
(1-1 / 2 128 ) n (n-1) / 2
และเนื่องจากเราสามารถสันนิษฐานได้ว่าn
มีขนาดใหญ่กว่า 0 เราจึงสามารถประมาณได้ว่า:
(1-1 / 2 128 ) n ^ 2/2
ทีนี้เราสามารถเทียบมันกับความน่าจะเป็น "ยอมรับได้" สมมติว่า 1%:
(1-1 / 2 128 ) n ^ 2/2 = 0.01
ซึ่งเราแก้ปัญหาn
และรับ:
n = sqrt (2 * บันทึก 0.01 / บันทึก (1-1 / 2 128 ))
ซึ่ง Wolfram Alpha ได้รับเป็น5.598318 × 10 19
ในการใส่ตัวเลขลงในมุมมองลองใช้เครื่อง 10,000 เครื่องแต่ละเครื่องมีซีพียู 4 คอร์ทำ 4Ghz และใช้รอบ 10000 เพื่อสร้าง Guid และไม่ทำอะไรเลย จากนั้นจะใช้เวลา ~ 111 ปีก่อนที่จะสร้างสำเนา
จากhttp://www.guidgenerator.com/online-guid-generator.aspx
GUID คืออะไร
GUID (หรือ UUID) เป็นตัวย่อของ 'Globally Unique Identifier' (หรือ 'Universally Unique Identifier') เป็นตัวเลขจำนวนเต็ม 128 บิตที่ใช้เพื่อระบุทรัพยากร โดยทั่วไปแล้วคำว่า GUID จะถูกใช้โดยนักพัฒนาที่ทำงานกับเทคโนโลยีของ Microsoft ในขณะที่ UUID จะถูกใช้ในที่อื่น
GUID มีความโดดเด่นอย่างไร
128- บิตมีขนาดใหญ่พอและอัลกอริธึมการสร้างนั้นไม่ซ้ำกันมากว่าถ้า 1,000,000,000 GUIDs ต่อวินาทีถูกสร้างขึ้นเป็นเวลา 1 ปีความน่าจะเป็นของการทำซ้ำจะมีเพียง 50% หรือถ้ามนุษย์ทุกคนบนโลกสร้าง 600,000,000 GUIDs น่าจะเป็น 50% ของความซ้ำซ้อน
ฉันพบ GUID ที่ซ้ำกัน
ฉันใช้เครื่องสแกนเดสก์ท็อป Neat Receipts และมาพร้อมกับซอฟต์แวร์ฐานข้อมูลที่เป็นกรรมสิทธิ์ ซอฟต์แวร์มีคุณสมบัติการซิงค์กับคลาวด์และฉันยังคงได้รับข้อผิดพลาดเมื่อทำการซิงค์ ห่านตัวผู้ที่ท่อนซุงเผยให้เห็นสายที่ยอดเยี่ยม
"ข้อผิดพลาด": [{"รหัส": 1, "ข้อความ": "creator_guid: มีอยู่แล้ว", "guid": "C83E5734-D77A-4B09-B8C1-9623CAC7B167"}]
ฉันค่อนข้างจะไม่เชื่อ แต่ก็พอแล้วเมื่อฉันพบวิธีในฐานข้อมูลเรียบร้อยแล้วลบระเบียนที่มี GUID นั้นข้อผิดพลาดก็หยุดลง
ดังนั้นเพื่อตอบคำถามของคุณพร้อมหลักฐานพอสมควรไม่มี ซ้ำกันเป็นไปได้ แต่มันอาจเป็นไปได้ว่าเหตุผลที่มันเกิดขึ้นนั้นไม่ได้เกิดจากโอกาส แต่เนื่องจากการฝึกแบบมาตรฐานนั้นไม่ได้ยึดถือในทางใดทางหนึ่ง (ฉันไม่ใช่คนโชคดี) แต่ฉันก็ไม่สามารถพูดได้อย่างแน่นอน ไม่ใช่ซอฟต์แวร์ของฉัน
ฝ่ายบริการลูกค้าของพวกเขานั้นสุภาพและให้ความช่วยเหลืออย่างมาก แต่พวกเขาต้องไม่เคยเจอปัญหานี้มาก่อนเพราะหลังจากผ่านโทรศัพท์ 3 ชั่วโมงไปกับพวกเขาพวกเขาไม่พบวิธีแก้ปัญหา (FWIW ฉันประทับใจมากกับ Neat และความผิดพลาดนี้ แต่น่าผิดหวังไม่เปลี่ยนความคิดเห็นของฉันเกี่ยวกับผลิตภัณฑ์ของพวกเขา)
MSDN :
มีความน่าจะเป็นต่ำมากที่ค่าของ Guid ใหม่เป็นศูนย์ทั้งหมดหรือเท่ากับ Guid อื่น ๆ
หากนาฬิการะบบของคุณตั้งไว้อย่างถูกต้องและไม่ได้พันไว้และหาก NIC ของคุณมี MAC ของตัวเอง (เช่นคุณยังไม่ได้ตั้งค่า MAC ที่กำหนดเอง) และผู้ขาย NIC ของคุณยังไม่ได้รีไซเคิล MAC (ซึ่งไม่ควรทำ แต่สิ่งที่ทราบกันดีว่าเกิดขึ้น) และหากมีการใช้ฟังก์ชั่นการสร้าง GUID ของระบบอย่างถูกต้องระบบของคุณจะไม่สร้าง GUID ที่ซ้ำกัน
หากทุกคนในโลกที่สร้าง GUID ปฏิบัติตามกฎเหล่านั้น GUID ของคุณจะไม่ซ้ำกันทั่วโลก
ในทางปฏิบัติจำนวนคนที่ฝ่าฝืนกฎต่ำและ GUID ของพวกเขาไม่น่าจะ "หลบหนี" ความขัดแย้งนั้นไม่น่าจะเป็นไปได้ทางสถิติ
GUID ไม่ซ้ำกัน 100% หรือไม่
ไม่รับประกันเนื่องจากมีหลายวิธีในการสร้างหนึ่ง อย่างไรก็ตามคุณสามารถลองคำนวณโอกาสในการสร้างสอง guid ของที่เหมือนกันและคุณได้รับความคิด: GUID ที่มี 128 บิตจึงมี 2 128 guid ของที่แตกต่างกัน - มากมากกว่ามีดาวในจักรวาลที่รู้จักกัน อ่านบทความวิกิพีเดียสำหรับรายละเอียดเพิ่มเติม
โดยทั่วไปแล้วสิ่งนี้เรียกว่า "ปัญหาวันเกิด" หรือ "วันเกิดความขัดแย้ง" Wikipedia มีภาพรวมที่ดีงามที่: Wikipedia - ปัญหาวันเกิด
ในแง่คร่าวๆรากที่สองของขนาดของพูลเป็นการประมาณคร่าวๆของเมื่อคุณสามารถคาดหวังโอกาส 50% ของการซ้ำ บทความนี้มีตารางความน่าจะเป็นของขนาดพูลและความน่าจะเป็นต่าง ๆ รวมทั้งแถว 2 ^ 128 ดังนั้นสำหรับความน่าจะเป็นที่ 1% ของการชนคุณคาดว่าจะสุ่มเลือกตัวเลขขนาด 128 * 10 ^ 18 แบบสุ่ม 2.6 * 10 ^ 18 โอกาส 50% ต้องเลือก 2.2 * 10 ^ 19 ในขณะที่ SQRT (2 ^ 128) คือ 1.8 * 10 ^ 19
แน่นอนว่าเป็นกรณีที่เหมาะสำหรับกระบวนการสุ่มอย่างแท้จริง ดังที่คนอื่น ๆ พูดกันบ่อยครั้งที่มีการสุ่มเลือกสิ่งนั้น- เครื่องกำเนิดและเมล็ดพันธุ์ดีแค่ไหน? มันจะดีถ้ามีการสนับสนุนฮาร์ดแวร์บางอย่างเพื่อช่วยในกระบวนการนี้ซึ่งจะเป็นหลักฐานแสดงหัวข้อย่อยเพิ่มเติมยกเว้นว่าสิ่งใดที่สามารถปลอมแปลงหรือเสมือนจริง ฉันสงสัยว่าอาจเป็นสาเหตุว่าทำไมที่อยู่ MAC / การประทับเวลาจะไม่ถูกรวมอีกต่อไป
เพื่อผลลัพธ์ที่ดียิ่งขึ้นวิธีที่ดีที่สุดคือการผนวก GUID ด้วยการประทับเวลา (เพื่อให้แน่ใจว่ายังคงมีความเป็นเอกลักษณ์)
Guid.NewGuid().ToString() + DateTime.Now.ToString();
อัลกอริธึม GUID มักจะนำไปใช้ตามข้อกำหนดของ v4 GUID ซึ่งโดยทั่วไปแล้วจะเป็นสตริงแบบหลอกเทียม น่าเศร้าที่สิ่งเหล่านี้ตกอยู่ในหมวดหมู่ของ"แนวโน้มที่ไม่ซ้ำกัน"จาก Wikipedia (ฉันไม่รู้ว่าทำไมคนจำนวนมากถึงไม่สนใจบิตนี้): "... เวอร์ชัน GUID อื่นมีคุณสมบัติที่เป็นเอกลักษณ์และความน่าจะเป็นที่แตกต่างกัน มีแนวโน้มที่จะไม่มีลักษณะเฉพาะ "
คุณสมบัติการสุ่มหลอกของ JavaScript ของ V8 Math.random()
คือ TERRIBLE ที่มีเอกลักษณ์และการชนมักเกิดขึ้นหลังจากการทำซ้ำเพียงไม่กี่พันครั้ง แต่ V8 ไม่ได้เป็นผู้ร้ายเพียงคนเดียว ฉันเคยเห็นการชน GUID ในโลกแห่งความจริงโดยใช้ทั้ง PHP และ Ruby การใช้งาน v4 GUID
เนื่องจากเป็นเรื่องปกติมากขึ้นที่จะขยายการสร้าง ID ในไคลเอนต์หลายรายและกลุ่มของเซิร์ฟเวอร์เอนโทรปีจึงได้รับความนิยมอย่างมาก - โอกาสของการสุ่มเมล็ดเดียวกันที่ใช้ในการสร้างการเพิ่ม ID (เวลามักใช้เป็นเมล็ดสุ่ม) ในเครื่องกำเนิดไฟฟ้าแบบหลอกหลอก) และการชน GUID เพิ่มขึ้นจาก "มีแนวโน้มว่าจะไม่ซ้ำกัน" เป็น "น่าจะทำให้เกิดปัญหามากมาย"
เพื่อแก้ปัญหานี้ฉันตั้งค่าเพื่อสร้างอัลกอริทึม ID ที่สามารถปรับขนาดได้อย่างปลอดภัยและรับประกันการชนที่ดีขึ้น ทำได้โดยใช้การประทับเวลาตัวนับไคลเอนต์ในหน่วยความจำลายนิ้วมือไคลเอนต์และอักขระแบบสุ่ม การรวมกันของปัจจัยสร้างความซับซ้อนที่เพิ่มขึ้นซึ่งทนต่อการชนโดยเฉพาะอย่างยิ่งแม้ว่าคุณจะขยายสเกลข้ามโฮสต์จำนวนมาก:
ฉันพบ GUID ที่ไม่ซ้ำกันระหว่างการทดสอบหน่วยแบบหลายเธรด / หลายกระบวนการ (ด้วยหรือไม่) ฉันเดาว่าเกี่ยวข้องกับทุกสิ่งอื่น ๆ ที่เท่าเทียมกันเมล็ดที่เหมือนกัน (หรือขาดการเพาะ) ของเครื่องกำเนิดไฟฟ้าแบบหลอกเทียม ฉันใช้มันเพื่อสร้างชื่อไฟล์ที่ไม่ซ้ำกัน ฉันพบว่าระบบปฏิบัติการดีกว่ามากในการทำเช่นนั้น :)
คุณถามว่า GUID นั้นไม่ซ้ำกัน 100% หรือไม่ ขึ้นอยู่กับจำนวน GUID ที่จะต้องไม่ซ้ำกัน เมื่อจำนวน GUID เข้าใกล้อินฟินิตี้ความน่าจะเป็นสำหรับ GUID ที่ซ้ำกันจะเข้าใกล้ 100%
คำตอบของ"GUID นั้นไม่เหมือนใคร 100% หรือไม่" เป็นเพียง"ไม่"
หากคุณต้องการเอกลักษณ์ของ GUID 100% ให้ทำตาม
ส่วนที่ยากที่สุดไม่ได้เกี่ยวกับการสร้าง Guid ที่ซ้ำกัน
ส่วนที่ยากที่สุดคือการออกแบบฐานข้อมูลเพื่อจัดเก็บสิ่งที่สร้างขึ้นทั้งหมดเพื่อตรวจสอบว่ามีการทำซ้ำจริงหรือไม่
จาก WIKI:
ตัวอย่างเช่นจำนวนของ UUID แบบสุ่มรุ่น 4 ที่จำเป็นต้องสร้างขึ้นเพื่อให้มีความน่าจะเป็น 50% ของการชนอย่างน้อยหนึ่งครั้งคือ 2.71 ล้านล้านคำนวณดังนี้
จำนวนนี้เทียบเท่ากับการสร้าง 1 พันล้าน UUID ต่อวินาทีเป็นเวลาประมาณ 85 ปีและไฟล์ที่มี UUIDs นี้จำนวน 16 ไบต์ต่อ UUID จะอยู่ที่ประมาณ 45 Exabytes ซึ่งใหญ่กว่าฐานข้อมูลที่ใหญ่ที่สุดที่มีอยู่ในปัจจุบันหลายเท่า คำสั่งของเพตาไบต์นับร้อย
GUID ย่อมาจาก Global Unique Identifier
โดยย่อ: (เบาะแสอยู่ในชื่อ)
รายละเอียด: GUID ได้รับการออกแบบให้ไม่ซ้ำใคร พวกเขาคำนวณโดยใช้วิธีการสุ่มตามนาฬิกาคอมพิวเตอร์และคอมพิวเตอร์เองหากคุณสร้าง GUID จำนวนมากที่มิลลิวินาทีเดียวกันบนเครื่องเดียวกันอาจเป็นไปได้ที่อาจตรงกัน แต่สำหรับการดำเนินงานปกติเกือบทั้งหมด