Jadual Kandungan
回复讨论(解决方案)
Rumah pembangunan bahagian belakang tutorial php 根据人数随机分配百分比的问题

根据人数随机分配百分比的问题

Jun 23, 2016 pm 01:50 PM
Bilangan orang mengedarkan peratusan rawak

需求是这样的,根据可变参数 $people 来给每个人随机分配百分比,条件是人数一定会控制在 3 
写了个简单的分配,但会出现最后一个人会得到很多的情况,并且由于分配区间实际上是 1 - 平均数 之间的百分比,不是严格意义上的 “随机平均分配”,求各位大大给个思路,抛砖引玉,不甚感谢。

$people = 3;     //人数        $percent = 100;   //百分比        $average = floor($percent/$people);        $rand_array = array();        $count = 0;        for ($i=0; $i < $n; $i++) {            if($i == ($n - 1)){                $rand_array[$i] = 100 - $count;            }else{                $rand_array[$i] = rand(1,$average);                $count = $count + $rand_array[$i];             }        }        return $rand_array;
Salin selepas log masuk


回复讨论(解决方案)

这样可能好点

$people = 3;    //人数$percent = 100; //百分比$res = array_fill(0, 3, floor($percent/$people)); //平均分配$d = 5; //容差foreach($res as &$v) $v += rand(-$d, $d);$res[rand(0, $people-1)] += $percent - array_sum($res); //随机将残差补入print_r($res);
Salin selepas log masuk

忘记上来结贴了,感谢版主大大的回复,问题已经解决了,贴出来与大家分享:

public static function rand_bouns($person){		//百分比		$percent = 100;		$now_person = $person;		$bouns = array();		for($i=0;$i<=$person-1;$i++){			$bouns[$i] = self::get_bouns($now_person,$percent);			$percent = $percent - $bouns[$i];			$now_person = $now_person - 1;			$now_bouns += $bouns[$i];		}		return $bouns;			}public static function get_bouns($person,$percent){		if($person==1) return $percent;		$max = 30;		if($percent < $max)  $max = $percent;		$min = $percent-$max*($person-1) <= 0 ? 1 : $percent-$max*($person-1);		$max = $max-($person) <= 0 ? 1 : $max-($person);		return rand($min,$max);	}
Salin selepas log masuk

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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 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)

Hasilkan nombor rawak dan rentetan dalam JavaScript Hasilkan nombor rawak dan rentetan dalam JavaScript Sep 02, 2023 am 08:57 AM

Keupayaan untuk menjana nombor rawak atau rentetan alfanumerik berguna dalam banyak situasi. Anda boleh menggunakannya untuk melahirkan musuh atau makanan di lokasi yang berbeza dalam permainan. Anda juga boleh menggunakannya untuk mencadangkan kata laluan rawak kepada pengguna atau mencipta nama fail untuk menyimpan fail. Saya menulis tutorial tentang cara menjana rentetan alfanumerik rawak dalam PHP. Saya berkata pada permulaan siaran ini bahawa beberapa peristiwa benar-benar rawak, dan perkara yang sama berlaku untuk nombor rawak atau penjanaan rentetan. Dalam tutorial ini, saya akan menunjukkan kepada anda cara menjana rentetan alfanumerik pseudo-rawak dalam JavaScript. Menjana Nombor Rawak dalam JavaScript Mari mulakan dengan menjana nombor rawak. Kaedah pertama yang terlintas di fikiran ialah Math.random(), yang mengembalikan apungan

Perbezaan antara rawak dan pseudo-rawak Perbezaan antara rawak dan pseudo-rawak Oct 10, 2023 am 09:27 AM

Perbezaan antara rawak dan pseudo-rawak ialah kebolehramalan, kebolehulangan, keseragaman dan keselamatan. Pengenalan terperinci: 1. Kebolehramalan nombor rawak tidak dapat diramalkan Walaupun keputusan masa lalu diketahui, keputusan masa hadapan tidak boleh diramalkan dengan tepat kerana ia dijana oleh algoritma benih, anda boleh menjana semula urutan atau jujukan yang sama; 2. Kebolehulangan, nombor rawak tidak boleh dihasilkan semula, dan hasil yang dihasilkan setiap kali adalah bebas, manakala nombor pseudo-rawak boleh dihasilkan semula, hanya menggunakan algoritma dan benih yang sama.

Bagaimana untuk menukar pecahan kepada peratusan dalam Python? Bagaimana untuk menukar pecahan kepada peratusan dalam Python? Aug 25, 2023 pm 01:25 PM

Pecahan dan peratusan ialah dua konsep asas matematik yang digunakan dalam pelbagai bidang seperti kewangan, analisis data dan statistik. Menukar pecahan kepada peratusan ialah operasi yang mudah tetapi perlu yang membolehkan kita mewakili nilai pecahan dengan cara yang lebih mudah difahami. Python, salah satu bahasa pengaturcaraan yang paling popular, menawarkan beberapa kaedah untuk menukar pecahan kepada peratusan, dan memahami kaedah ini adalah penting bagi sesiapa yang bekerja dengan data dalam Python. Artikel ini melihat secara mendalam tentang menukar pecahan kepada peratusan dalam Python. Kami akan meneroka cara yang berbeza untuk melakukan ini dan memberikan contoh untuk membantu anda memahami setiap kaedah. Sama ada anda seorang pemula atau pengaturcara Python yang berpengalaman, artikel ini memberi anda kunci untuk melakukan ini dalam Python

Program Python untuk mendapatkan peratusan kekerapan perkataan Program Python untuk mendapatkan peratusan kekerapan perkataan Sep 08, 2023 pm 06:29 PM

Dalam artikel ini, kita akan belajar cara mendapatkan kekerapan perkataan sebagai peratusan dalam Python. Katakan kita telah memperoleh senarai input rentetan. Sekarang, kita akan mencari peratusan setiap perkataan dalam senarai rentetan input yang diberikan. Kaedah yang digunakan oleh formula (OccurrenceofXword/Totalwords)*100 ialah menggunakan fungsi sum(), Counter(), join() dan split() untuk menggunakan fungsi join(), split() dan count() untuk digunakan fungsi countOf() modul operator. Kaedah 1: Gunakan fungsi sum(), Counter(), join() dan split() join() ialah Py

Cara menggunakan fungsi random.randint() untuk menjana integer rawak dalam Python 2.x Cara menggunakan fungsi random.randint() untuk menjana integer rawak dalam Python 2.x Jul 31, 2023 pm 12:13 PM

Python ialah bahasa pengaturcaraan popular yang digunakan secara meluas dalam analisis data, pembelajaran mesin, pembangunan web dan bidang lain. Dalam Python, modul rawak menyediakan fungsi random.randint() untuk menjana integer rawak. Artikel ini menerangkan cara menggunakan fungsi random.randint() untuk menjana integer rawak dan menyediakan beberapa contoh kod. Pertama, kita perlu mengimport modul rawak: importrandom Seterusnya, kita boleh memanggil rando

Berapa ramai orang dibenarkan dalam kamera persidangan Tencent? Berapa ramai orang dibenarkan dalam kamera persidangan Tencent? Feb 28, 2024 pm 05:55 PM

Dalam mesyuarat Tencent, pengguna boleh menghidupkan kamera mereka sendiri untuk berkongsi, tetapi kamera mempunyai bilangan maksimum orang Jadi apakah had atas bilangan orang pada kamera Di bawah, editor akan memperkenalkan kepada anda had bilangan orang dalam kamera mesyuarat Tencent Mari kita ketahui bersama. Tutorial penggunaan mesyuarat Tencent: Berapakah bilangan maksimum orang untuk kamera mesyuarat Tencent Jawapan: Maksimum ialah 60 orang dan minimum ialah 30 orang? 1. Pengenalan kepada had atas bilangan orang dalam kamera: 1. Komputer boleh memuatkan sehingga 60 orang yang boleh menghidupkan kamera, dan skrin boleh memuatkan sehingga 9 atau 25 orang pada masa yang sama. 2. Telefon bimbit boleh menyokong sehingga 30 orang menghidupkan kamera, dan satu skrin boleh memuatkan sehingga 4 orang pada masa yang sama. 2. Kaedah untuk meningkatkan had atas bilangan video: 1. Jika peserta terlalu ramai, sehingga 30 orang boleh menghidupkan kamera pada masa yang sama. 2. Kita boleh menggunakan antara muka avatar akaun untuk

Satu daripada lima PC kini telah memasang Windows 11, tetapi penggunaan nampaknya semakin perlahan Satu daripada lima PC kini telah memasang Windows 11, tetapi penggunaan nampaknya semakin perlahan Apr 30, 2023 pm 05:10 PM

Windows 11 Microsoft terus berkembang, seperti yang ditunjukkan oleh data Februari 2022 terkini daripada laporan AdDuplex. Sistem pengendalian dengan cepat menghampiri angka 20%, bermakna kira-kira satu daripada lima PC kini menjalankan Windows 11. Versi awam Windows 11, Windows 1121H2, kini berada pada tahap 19.3%. Sementara itu, kadar orang dalam menjalankan pelbagai binaan pratonton kini ialah 0.3%. Ini menjadikan jumlah bahagian Windows 11 kepada 19.6%, dan menjelang Mac, bahagian peratusan ini mungkin melebihi 20%. Windows 11 dan banyak Wind

Selesaikan ralat PHP: Cuba berikan hasil bukan pembolehubah kepada titik sambungan Selesaikan ralat PHP: Cuba berikan hasil bukan pembolehubah kepada titik sambungan Aug 18, 2023 pm 01:13 PM

Menyelesaikan ralat PHP: Cuba tetapkan hasil bukan pembolehubah kepada titik sambungan Dalam pembangunan PHP, kami sering menghadapi pelbagai mesej ralat. Salah satu daripadanya ialah "TryingtoAssignNon-VariabletoConcatenate" (TryingtoAssignNon-VariabletoConcatenate). Mesej ralat ini menunjukkan bahawa dalam operator titik gabung (.), kami cuba untuk menyertai keputusan bukan pembolehubah. Untuk menyelesaikan masalah ini, kita perlu terlebih dahulu memahami peranan dan penggunaan pengendali titik gabungan.

See all articles