armwork 发表于 2009-6-4 11:25:07

均匀随机分布问题,谢谢!

问题:
幼儿园有32个小朋友排成队领苹果,但只有25个苹果,该怎么分派才能保证排队的小孩均匀拿到呢?好象是均匀随机分布的问题吗?
如果用FPGA实现,该怎么弄呢?

谢谢

Cliff 发表于 2009-6-4 12:33:39

无法理解!

如果要均分,那就是每人 25/32 个苹果,但是就没有排队的必要了
如果先来先得,那么后面的人就没有苹果

何谓均匀拿到?

armwork 发表于 2009-6-4 13:18:52

谢谢,我只是举个例子.

肯定有7个小孩拿不到,想避免下面情况发生:
连续10个小孩都拿到,或者连续5个小孩拿不到.

没学过概率论,网上找了,象是平均随机分布的问题.

Cliff 发表于 2009-6-4 13:24:54

那就是环,而不是队了啊
这和概率论没关系啊

给一段 C 的伪代码

LOOP:
    X += 25.0/32.0;
    if (X >= 1)
      给苹果;
      X -= 1;
    GOTO LOOP;

armwork 发表于 2009-6-4 14:08:51

谢谢,我来好好学习.

armwork 发表于 2009-6-4 14:27:57

非常感谢,我刚才用几组数验证了很正确实用.

armwork 发表于 2009-6-11 10:57:16

always @ (posedge clk)
begin
                        if (start)
                                begin
                                        if (cnt<256)
                                                begin
                                                        temp<=temp+remainder;
                                                        if (temp>=256)
                                                                begin
                                                                        addImg<=1;
                                                                        temp<=temp-256;       
                                                                end
                                                        else
                                                                addImg<=0;
                                                        cnt<=cnt+1;       
                                                end
                                        else
                                                overSeekImg<=1;
                                end
                        else
                                begin
                                        temp=0;
                                        cnt=0;
                                end
                end

armwork 发表于 2009-6-11 11:01:36

always @ (posedge clk)
   begin
      if (start)
        begin
           if (cnt<8)
                begin
                   temp<=temp+remainder;
                   if (temp>=8)
                      begin
                        addImg<=1;
                        temp<=temp-8;       
                      end
                   else
                      addImg<=1;
                   cnt<=cnt+1;       
                end
           else
              begin
                temp=0;
                cnt=0;
           end
    end

armwork 发表于 2009-6-11 11:06:23

上面是实现代码,但是不对的,
temp<=temp+remainder;
if (temp>=8)

如果改成阻塞赋值就对了.
temp=temp+remainder;
if (temp>=8)

但又想做成时序电路,该怎么做呢?谢谢
页: [1]
查看完整版本: 均匀随机分布问题,谢谢!