10000個球中隨機取出1000個球
前幾天看到一個演算法題,說有10000個球,從中隨機取出1000個,要求高效能?
剛開始我的想法是,迴圈0-1000 每次在0-10000中產生隨機數,如果map中不存在,就放入map中,基數加1,如果存在,不加。這個方式基本能實現,但是效率不高,而且理論上有可能死迴圈。
還有一個方式就是,迴圈1000次,每次產生0-9的隨機數,然後基數*10+隨機數,存入map中。這樣1000次肯定產生不同的球,第二個演算法就是每次概率減少1/1000,最後一個概率只有1/10.而前一種最後一個是1/9001.
週末無聊,學python,順便來一個python實現
import random map = {} for i in range(0,1000): t = random.randint(i*10,i*10+9) map[t]=t for k in map.iterkeys(): print k
相關推薦
10000個球中隨機取出1000個球
前幾天看到一個演算法題,說有10000個球,從中隨機取出1000個,要求高效能? 剛開始我的想法是,迴圈0-1000 每次在0-10000中產生隨機數,如果map中不存在,就放入map中,基數加1,如果存在,不加。這個方式基本能實現,但是效率不高,而且理論上有可能死迴圈。
JS從陣列中隨機取出幾個陣列元素的方法
原文連結:http://caibaojian.com/js-get-random-elements-from-array.html js如何從一個數組中隨機取出一個元素或者幾個元素。 假如陣列為· var items = ['1','2','4','5','6','7','8','9','10'];
java程式碼實現從自然數1到1000中隨機取900個不重複的數並列印
AL筆試有考到,你懂得! 主要用到Set和TreeSet資料結構,TreeSet相對Set多了排序功能,而Random類可以產生隨機數 import java.util.Random; import java.util.Set; import java.util.TreeS
js從數組中隨機獲取n個不重復的數據
課堂 || 不重復 function return func () 思路 != 做雲課堂的作業時遇到一要求,實現刷新頁面時顯示不同數據,(數組中20個據,頁面加載10個)。思路就是從0-19中隨機生成10個不同的數,讓數組取下標輸出數據。 下面是在num的範圍內生成n個不重
sampleSize - 從數組中隨機獲取 n 個元素
clas ogg 參數 cti 使用 tor hal ref per 從 array 中獲取 n 個唯一鍵隨機元素。 使用Fisher-Yates算法 對數組進行打亂。 使用 Array.slice() 獲取第一個 n 元素。 省略第二個參數,n 從數組中隨機取得 1 個元
從數組中隨機選擇3個元素
floor spa splice 隨機 -s math random [] 刪除 從數組中隨機選擇3個元素 用到的方法:splice()//刪除數組中的某一元素 var Arr=["aaa","bbb","ccc","ddd","eee","fff"]var arrNe
從陣列中隨機取若干個不重複的數
要求:從 0 ~ 100 中隨機取出十個不重複的 數 思路: 1: 利用陣列,通過Math.random()*(arr.length -1) 然後將取到的數跟陣列最後一個元素交換,將陣列長度減一 下面程式碼中設計到 判斷陣列中是不是有重複元素 我的想法如下,如有錯誤還
如何隨機取出兩個資料之間的隨機數
//定義隨機 Random rand = new Random(); // int rand= rand.nextInt(int a,int b) //a 是連個資料的差值 第二個是最小的那個值 int randNum = rand.nextInt(pids_.getMax
運用遞迴計算在n個球中任取m個球(不放回)共有多少種取法
答案如下:#include<iostream> using namespace std; int f(int n, int m){ if(n < m) return 0; i
從n個物件中隨機選擇一個
現在有n個物件,讓從裡隨機選擇一個是非常簡單的。最直接的方法是產生一個1~n的隨機數就可以了。但是現在如果我告訴你,n是不確定的,又該怎麼做? 現在問題變為: 如何從事先不知道文字檔案行數的情況下讀取該檔案,從中隨機選擇一行並輸出? 這個題目看上去比原來的問題有意思的多。答
Java中從m個數中隨機選取n個不同的數(m>=n),並進行排序
我這裡直接給出我寫的函式,只需傳入引數便可直接使用://從x-y中的數中隨機找出num個不同的數,返回給integer的動態陣列中ArrayList<Integer> makeRandom(int x, int y, int num) {
小知識:隨機生成26個字母中(一個或多個)的字母
小知識:就直接上程式碼了,不多說 String str = ""; for (int i = 0;i<1;i++){ str = str+ (char
山科java實驗3-2 在安排教師監考時,需要從一組教師中隨機選取n個教師參加監考。要求實現一個類RandomTeacher的靜態方法public static String[] getRandomT
在安排教師監考時,需要從一組教師中隨機選取n個教師參加監考。要求實現一個類RandomTeacher的靜態方法public static String[] getRandomTeachers(String[] teachers, int n),能夠從teachers中隨機選擇
java 從List中隨機取出一個元素
n) pos () pan ext array bsp spa arr java 從List中隨機取出一個元素 1 List<Integer> list = new ArrayList<>(); 2 Random random =
SQL SERVER 擷取多個分隔符中指定第幾個分隔符的前邊的內容
又是一個難懂的標題,上例子吧,比如一個字串,‘abc,1344,343,13as,33,343’,這個字串都是用','分隔的,現在想擷取第四個逗號前邊所有的內容,方法如下: CREATE FUNCTION [dbo].[Get_StrArra
django postgresql中隨機取出一條記錄的實現
import random random_uuid = ''.join([random.choice('0123456789abcdef') for _ in range(32)]) 採用fi
簡單php中隨機取出陣列中不重複的值
function uni($array,$nums,$unique=true){ $newarray=array(); if((bool)$unique){ $array=array_unique($array);// 移除陣列中重複的值,並且返回陣列。 }
定義一個類:實現功能可以返回隨機的10個數字,隨機的10個字母, 隨機的10個字母和數字的組合;字母和數字的範圍可以指定,類似(1~100)(A~z)
#習題2:定義一個類:實現功能可以返回隨機的10個數字,隨機的10個字母, #隨機的10個字母和數字的組合;字母和數字的範圍可以指定 class RandomString(): #隨機數選擇的範圍作為引數,如(1~100)字母 ('A'~'z'),大寫字母在前 按ascii值
從一個數組中隨機取出幾個數,切不重複!
import java.util.Arrays; public class suiji { public static void main(String[] args) { int[] arrays=new int[33];
編寫程式實現以下功能: 隨機產生20個正整數存入陣列a中,且每個數均在1000-9999之間(包含1000和9999)。對陣列進行排序,要求按每個數的後三位的大小進行升序排列,然後取出滿足此條
<span style="font-size:24px;">int a[20] = {0};//定義一個數組 for (int i = 0; i < 20; i++) { a[i] = arc4random() % (9999 -