Jadual Kandungan
洗牌算法是如何运行的
Python实现洗牌算法
Rumah pembangunan bahagian belakang Tutorial Python Menggunakan Python untuk melaksanakan langkah-langkah menjalankan algoritma shuffling

Menggunakan Python untuk melaksanakan langkah-langkah menjalankan algoritma shuffling

Jan 23, 2024 pm 11:24 PM
Konsep algoritma

洗牌算法运行规则 Python实现洗牌算法

给定一个数组,编写一个程序来生成数组元素的随机排列,这个问题也被称为“洗牌”或“随机化给定的数组”。洗牌算法中数组元素的每种排列的可能性都应该是相同的。

洗牌算法是如何运行的

给定的数组是arr[],一个简单的解决方法是创建一个辅助数组temp[],它最初是arr[]的副本。从temp[]中随机选择一个元素,将随机选择的元素复制到arr[0],然后从temp[]中删除选择的元素。重复相同的过程n次并继续将元素复制到arr[1]、arr[2]、...。该解决方案的时间复杂度为O(n^2)。

Fisher-Yates shuffle算法的工作时间复杂度为O(n)。这里的假设是,我们得到一个函数rand(),它在O(1)时间内生成一个随机数。这个想法是从最后一个元素开始,并将其与整个数组(包括最后一个)中随机选择的元素交换。现在考虑从0到n-2的数组(大小减1),重复这个过程直到我们找到第一个元素。

下面是详细的算法:

对包含n个元素(索引0..n-1)的数组a进行洗牌

for i from n-1 downto 1 do
j=random integer with 0<=j<=i
exchange a[j]and a<i>
Salin selepas log masuk

Python实现洗牌算法

from random import randint
def randomize(arr,n):
for i in range(n-1,0,-1):
j=randint(0,i+1)
arr<i>,arr[j]=arr[j],arr<i>
return arr
arr=[1,2,3,4,5,6,7,8]
n=len(arr)
print(randomize(arr,n))
输出结果:7 8 4 6 3 1 2 5
Salin selepas log masuk

Atas ialah kandungan terperinci Menggunakan Python untuk melaksanakan langkah-langkah menjalankan algoritma shuffling. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Analisis mendalam tentang Algoritma Pengoptimuman Serigala Kelabu (GWO) serta kekuatan dan kelemahannya Analisis mendalam tentang Algoritma Pengoptimuman Serigala Kelabu (GWO) serta kekuatan dan kelemahannya Jan 19, 2024 pm 07:48 PM

Algoritma Pengoptimuman Serigala Kelabu (GWO) ialah algoritma metaheuristik berasaskan populasi yang menyerupai hierarki kepimpinan dan mekanisme memburu serigala kelabu dalam alam semula jadi. Inspirasi Algoritma Serigala Kelabu 1. Serigala kelabu dianggap sebagai pemangsa puncak dan berada di bahagian atas rantai makanan. 2. Serigala kelabu suka hidup dalam kumpulan (hidup berkumpulan), dengan purata 5-12 serigala dalam setiap pek. 3. Serigala kelabu mempunyai hierarki penguasaan sosial yang sangat ketat, seperti yang ditunjukkan di bawah: Serigala alfa: Serigala alfa menduduki kedudukan dominan dalam keseluruhan kumpulan serigala kelabu dan mempunyai hak untuk memerintah seluruh kumpulan serigala kelabu. Dalam aplikasi algoritma, Alpha Wolf adalah salah satu penyelesaian terbaik, penyelesaian optimum yang dihasilkan oleh algoritma pengoptimuman. Serigala beta: Serigala beta melaporkan kepada serigala Alpha dengan kerap dan membantu serigala Alpha membuat keputusan yang terbaik. Dalam aplikasi algoritma, Beta Wolf boleh

Terokai prinsip asas dan proses pelaksanaan algoritma pensampelan bersarang Terokai prinsip asas dan proses pelaksanaan algoritma pensampelan bersarang Jan 22, 2024 pm 09:51 PM

Algoritma persampelan bersarang ialah algoritma inferens statistik Bayesian yang cekap digunakan untuk mengira kamiran atau penjumlahan di bawah taburan kebarangkalian kompleks. Ia berfungsi dengan menguraikan ruang parameter kepada berbilang hiperkubus dengan isipadu yang sama, dan secara beransur-ansur dan berulang "menolak keluar" salah satu hiperkubus volum terkecil, dan kemudian mengisi hiperkubus dengan sampel rawak untuk menganggarkan nilai kamiran taburan kebarangkalian dengan lebih baik. Melalui lelaran berterusan, algoritma pensampelan bersarang boleh memperoleh nilai kamiran ketepatan tinggi dan sempadan ruang parameter, yang boleh digunakan untuk masalah statistik seperti perbandingan model, anggaran parameter, dan pemilihan model. Idea teras algoritma ini adalah untuk mengubah masalah penyepaduan kompleks kepada satu siri masalah penyepaduan mudah, dan mendekati nilai kamiran sebenar dengan mengurangkan jumlah ruang parameter secara beransur-ansur. Setiap langkah lelaran mengambil sampel secara rawak daripada ruang parameter

Menganalisis prinsip, model dan komposisi Algoritma Carian Sparrow (SSA) Menganalisis prinsip, model dan komposisi Algoritma Carian Sparrow (SSA) Jan 19, 2024 pm 10:27 PM

Algoritma Carian Sparrow (SSA) ialah algoritma pengoptimuman meta-heuristik berdasarkan tingkah laku anti-pemangsaan dan mencari makan burung pipit. Tingkah laku mencari makan burung pipit boleh dibahagikan kepada dua jenis utama: pengeluar dan pemulung. Pengeluar secara aktif mencari makanan, manakala pemulung bersaing untuk mendapatkan makanan daripada pengeluar. Prinsip Algoritma Pencarian Sparrow (SSA) Dalam Algoritma Pencarian Sparrow (SSA), setiap burung pipit sangat memperhatikan tingkah laku jiran-jirannya. Dengan menggunakan strategi mencari makan yang berbeza, individu dapat menggunakan tenaga tertahan dengan cekap untuk mengejar lebih banyak makanan. Selain itu, burung lebih terdedah kepada pemangsa dalam ruang carian mereka, jadi mereka perlu mencari lokasi yang lebih selamat. Burung di tengah koloni boleh meminimumkan pelbagai bahaya mereka sendiri dengan tinggal dekat dengan jiran mereka. Apabila burung mengesan pemangsa, ia membuat panggilan penggera

Apakah peranan perolehan maklumat dalam algoritma id3? Apakah peranan perolehan maklumat dalam algoritma id3? Jan 23, 2024 pm 11:27 PM

Algoritma ID3 adalah salah satu algoritma asas dalam pembelajaran pokok keputusan. Ia memilih titik perpecahan terbaik dengan mengira keuntungan maklumat setiap ciri untuk menjana pepohon keputusan. Keuntungan maklumat ialah konsep penting dalam algoritma ID3, yang digunakan untuk mengukur sumbangan ciri kepada tugas pengelasan. Artikel ini akan memperkenalkan secara terperinci konsep, kaedah pengiraan dan aplikasi perolehan maklumat dalam algoritma ID3. 1. Konsep entropi maklumat Entropi maklumat ialah konsep dalam teori maklumat, yang mengukur ketidakpastian pembolehubah rawak. Untuk nombor pembolehubah rawak diskret, dan p(x_i) mewakili kebarangkalian bahawa pembolehubah rawak X mengambil nilai x_i. surat

Pengenalan kepada algoritma Wu-Manber dan arahan pelaksanaan Python Pengenalan kepada algoritma Wu-Manber dan arahan pelaksanaan Python Jan 23, 2024 pm 07:03 PM

Algoritma Wu-Manber ialah algoritma pemadanan rentetan yang digunakan untuk mencari rentetan dengan cekap. Ia adalah algoritma hibrid yang menggabungkan kelebihan algoritma Boyer-Moore dan Knuth-Morris-Pratt untuk menyediakan padanan corak yang pantas dan tepat. Langkah algoritma Wu-Manber 1. Cipta jadual cincang yang memetakan setiap subrentetan yang mungkin bagi corak ke kedudukan corak di mana subrentetan itu berlaku. 2. Jadual cincang ini digunakan untuk mengenal pasti potensi lokasi permulaan corak dalam teks dengan cepat. 3. Lelaran melalui teks dan bandingkan setiap aksara dengan aksara yang sepadan dalam corak. 4. Jika aksara sepadan, anda boleh beralih ke aksara seterusnya dan meneruskan perbandingan. 5. Jika aksara tidak sepadan, anda boleh menggunakan jadual cincang untuk menentukan watak berpotensi seterusnya dalam corak.

Penjelasan terperinci algoritma Bellman Ford dan pelaksanaan dalam Python Penjelasan terperinci algoritma Bellman Ford dan pelaksanaan dalam Python Jan 22, 2024 pm 07:39 PM

Algoritma Bellman Ford boleh mencari laluan terpendek dari nod sasaran ke nod lain dalam graf berwajaran. Ini sangat serupa dengan algoritma Dijkstra Algoritma Bellman-Ford boleh mengendalikan graf dengan pemberat negatif dan agak mudah dari segi pelaksanaan. Penjelasan terperinci tentang prinsip algoritma Bellman Ford Algoritma Bellman Ford secara lelaran mencari laluan baharu yang lebih pendek daripada laluan yang terlebih anggaran dengan membuat anggaran terlebih panjang laluan dari bucu permulaan kepada semua bucu lain. Kerana kita ingin merekodkan jarak laluan setiap nod, kita boleh menyimpannya dalam tatasusunan saiz n, di mana n juga mewakili bilangan nod. Contoh Rajah 1. Pilih nod permulaan, tetapkan ia kepada semua bucu lain tanpa terhingga, dan rekod nilai laluan. 2. Lawati setiap tepi dan lakukan operasi kelonggaran untuk mengemas kini laluan terpendek secara berterusan. 3. Kita perlukan

Prinsip pengoptimuman berangka dan analisis Algoritma Pengoptimuman Paus (WOA) Prinsip pengoptimuman berangka dan analisis Algoritma Pengoptimuman Paus (WOA) Jan 19, 2024 pm 07:27 PM

Algoritma Pengoptimuman Paus (WOA) ialah algoritma pengoptimuman metaheuristik yang diilhamkan oleh alam semula jadi yang menyerupai tingkah laku memburu ikan paus bungkuk dan digunakan untuk pengoptimuman masalah berangka. Algoritma Pengoptimuman Paus (WOA) bermula dengan satu set penyelesaian rawak dan mengoptimumkan berdasarkan ejen carian yang dipilih secara rawak atau penyelesaian terbaik setakat ini melalui kemas kini kedudukan ejen carian dalam setiap lelaran. Inspirasi Algoritma Pengoptimuman Paus Algoritma Pengoptimuman Paus diinspirasikan oleh tingkah laku memburu ikan paus bungkuk. Paus bungkuk lebih suka makanan yang terdapat berhampiran permukaan, seperti krill dan kumpulan ikan. Oleh itu, paus bungkuk mengumpulkan makanan bersama-sama untuk membentuk rangkaian gelembung dengan meniup buih dalam lingkaran bawah ke atas semasa memburu. Dalam gerakan "lingkaran ke atas", ikan paus bungkuk menyelam kira-kira 12m, kemudian mula membentuk gelembung lingkaran di sekeliling mangsanya dan berenang ke atas.

Algoritma Ciri Invarian Skala (SIFT). Algoritma Ciri Invarian Skala (SIFT). Jan 22, 2024 pm 05:09 PM

Algoritma Scale Invariant Feature Transform (SIFT) ialah algoritma pengekstrakan ciri yang digunakan dalam bidang pemprosesan imej dan penglihatan komputer. Algoritma ini telah dicadangkan pada tahun 1999 untuk meningkatkan pengecaman objek dan prestasi pemadanan dalam sistem penglihatan komputer. Algoritma SIFT adalah teguh dan tepat dan digunakan secara meluas dalam pengecaman imej, pembinaan semula tiga dimensi, pengesanan sasaran, penjejakan video dan medan lain. Ia mencapai invarian skala dengan mengesan titik utama dalam ruang skala berbilang dan mengekstrak deskriptor ciri tempatan di sekitar titik utama. Langkah-langkah utama algoritma SIFT termasuk pembinaan ruang skala, pengesanan titik utama, kedudukan titik utama, penetapan arah dan penjanaan deskriptor ciri. Melalui langkah-langkah ini, algoritma SIFT boleh mengekstrak ciri yang teguh dan unik, dengan itu mencapai pemprosesan imej yang cekap.

See all articles