ขั้นตอนวิธีการของหวังและลันเดา
ขั้นตอนวิธีของหวังและลันเดา () เป็นขั้นตอนวิธีที่ถูกเพิ่มตามขั้นตอนวิธีการแบบ ซึ่งถูกเสนอขึ้นโดยฟุเกา หวัง (Fugao Wang) และ เดวิด พี.ลันเดา (David P. Landau) ซึ่งขั้นตอนวิธีการนี้ถูกออกแบบเพื่อให้สามารถคำนวณความหนาแน่นของสภาวะของสารต่าง ๆ ที่ถูกจำลองโดยระบบคณิตกร (คอมพิวเตอร์) เช่น แบบจำลองไอซิ่งของแก้วที่ถูกหมุน หรือ แบบจำลองอะตอมในสนามของแรงในโมเลกุลต่าง ๆ แนวคิดหลักของขั้นตอนวิธีการนี้คือการสร้างความหนาแน่นของสภาวะของสารโดยใช้ความจริงที่ว่า ระบบนั้นเมื่อถูกจำลองแล้ว จะสร้างความหนาแน่นของสภาวะของสารขึ้น ขั้นตอนวิธีการนี้เป็นวิธีการทั่วไปที่สามารถทำให้รู้ได้ถึงความหนาแน่นของสภาวะของสาร ซึ่งเป็นที่ยอมรับโดยทั่วไป
วิธีการแบบ Metropolis Monte Carlo ถูกตั้งขึ้นตามความคิดของโบลท์แมนที่ว่า เมื่อเพิ่มอุณหภูมิให้กับโมเลกุลที่กระจัดกระจายในระหว่างช่วงพลังงานที่สูง หรือเรียกอีกอย่างว่าในสถานะที่ไม่น่าพึงพอใจ กับ ช่วงพลังงานต่ำ หรือเรียกอีกอย่างว่าในสถานะที่น่าพึงพอใจ ซึ่งมีความน่าจะเป็นที่พลังงานนั้นจะมีผลต่อความหนาแน่นของสภาวะของสาร ดังนั้นถ้าหากว่ามีสารใดสารหนึ่งอยู่ในภาวะที่พลังงานต่ำ แล้วได้รับพลังงานมากเพียงพอที่จะทำให้สถานะของสารเปลี่ยนแปลงไป ซึ่งทำให้สภาวะความหนาแน่นของสารที่มีพลังงานมากถูกทำลายไป ยกตัวอย่างเข่นการที่ขี้ผึ้งละลาย ในสภาวะอุณหภูมิต่ำ เฉพาะสถานะของแข็งเท่านั้นที่สามารถจับต้องได้ เมื่ออุณหภูมิเพิ่มขึ้น สถานนะที่ไม่น่าพึงพอใจจะเพิ่มมากขึ้น จนในที่สุดทำให้ของแข็งนั้นหลอมเหลวกลายเป็นของเหลว
ในทฤษฎีของขั้นตอนวิธีการของหวังและลันเดาสามารถนำไปใช้กับระบบใด ๆ ที่ถูกกำหนดสถานะโดยพลังงาน (หรือค่าอื่น ๆ) ในปัจจุบัน ขั้นตอนวิธีการนี้ถูกนำไปใช้กับการแก้ปัญหาปริพันธ์ต่าง ๆ และการหดตัวของโปรตีน
ขั้นตอนวิธีโรห์ของพอลลาร์ด
ขั้นตอนวิธีโรห์ จะใช้ "f" ฟังก์ชันมอดุโล "n" สำหรับการสร้างลำดับตัวเลขสุ่มเทียม () โดยลำดับทั้งสองจะมีความเร็วในการเลื่อนลำดับต่างกัน 2 เท่า กล่าวคือ ลำดับหนึ่งจะเลื่อนไป 2 ขั้น ในขณะที่อีกลำดับ จะเลื่อนไปเพียง 1 ขั้นเท่านั้น
หากให้ "x" และ "y" เป็นตัวแทนสำหรับตัวเลขในลำดับทั้ง 2 ในขณะหนึ่ง จะทำการหาค่า ห.ร.ม. ( GCD ) ของ formula_5 และ formula_4 โดยถ้าหาก ห.ร.ม. มีค่า 
- เท่ากับ "n" จะทำให้ขั้นตอนวิธีนี้จบการทำงานลงด้วยความผิดพลาด เนื่องจาก ห.ร.ม. จะมีค่าเท่ากับ "n" ได้ เมื่อ "x" = "y" ซึ่งจาก ขั้นตอนวิธีการตรวจสอบการเกิดวงวนของฟลอยด์ จะได้ว่า ลำดับที่สร้างได้พบกับวงวน และการทำงานในครั้งต่อๆไปก็จะเป็นการทำงานซ้ำเดิมกับงานที่เคยทำไปแล้ว
- เท่ากับ 1 แสดงว่า ยังหาตัวประกอบไม่เจอ ให้กลับไปเลือก "x" และ "y" จากลำดับตัวเลขสุ่มเทียมตัวต่อไป โดย "x" = "f"("x") และ "y" = "f"("f"("y")) แล้วกลับไปทำแบบเดิมอีกครั้งหนึ่ง
- เท่ากับ ค่าอื่นๆ แสดงว่า ค่าที่ได้นั้น คือตัวประกอบตัวหนึ่งของ "n" นั่นเอง