2016-10-12 39 views
0

假設我有一個接一個發生的特定事件,並且希望能夠選擇一個子集,比如每個第50個事件並將其放在一邊。 但是說我無法確切地知道第50個事件發生的時間。連續選擇第N個事件

如果我在1..50之間取一個隨機數並且如果它等於50,那麼將它放在一邊呢?

我需要解決類似的問題,我不知道如何選擇每當進入時,我沒有任何可以使用的信息。當然,我可以在數據庫中存儲一個值,但我寧願不要。

此外,每個進入的事件都與下一個或上一個沒有關係。

+0

你有任何代碼可以產生或處理上述事件嗎? – ChristianF

+0

好吧,它不是重要的部分,我的問題是我怎樣才能採取一個隨機的子集,大致相當於每50個事件。 例如,人們註冊到一個網站,我想每隔50個人做一件事。然而,我不能使用的東西,如ID和做模 – user1009698

+1

可能重複的[我怎麼可以選擇一個隨機數,但與正常的概率分佈在PHP?](http://stackoverflow.com/questions/15951563/how- can-i-choose-a-random-number-but-with-a-normal-probability-in-p) – GlennV

回答

0

你已經使這個非常含糊,所以我只能給出一個模糊的答案。我首先想到的是創建一個計數器變量。

$counter = 0; 

然後每次發生事件時,都可以添加到它。

myEvent(); 
$counter++; 

這當然可以讓你檢查當前事件是否是第50個。

if($counter == 50) 
{ 
myEvent(); 
/* Whatever code "puts the event aside" */ 
$counter = 0; 
} 
else 
{ 
myEvent(); 
$counter++; 
} 

再次,沒有一些上下文,這個問題很難回答,但希望這有助於。

+0

我已經更新了我的答案,對不起。所以每一個進入的事件都與下一個或前一個沒有關係。 – user1009698

0

我會執行一個while循環:

$ Count = 0;

while($ Count!= 50){

$ Count ++;

If($ Count == 50){//隨後發生的任何事情;打破;}

{

+0

我已經更新了我的答案,對不起。所以每一個進入的事件都與下一個或前一個沒有關係。 – user1009698

1

你說基本上什麼,因爲我的理解是,如下所示:

  • 你有一組事件。
  • 事件之間沒有關係。
  • 事件中沒有順序。
  • 事件之間沒有已知狀態。
  • 觸發器未知。

然而,不管怎樣,你仍然希望能夠觸發與他們的次序相關的事件。在實踐中,你所說的是,你有三種不可能的情況,你希望計算機「讀你的思想」,然後決定你自己不知道的解決方案。

這導致我可以給出的唯一合乎邏輯的答案:
由於現在的問題,你正在尋找的是不可能的。

解決狀態引擎,並跟蹤事件的順序和關係,然後你可能有機會找到你的解決方案。但是,沒有知道想做什麼,沒有人能夠幫助你。