Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #147725

Re: Bart, a tcc "issue"

From Manfred <noname@add.invalid>
Newsgroups comp.lang.c
Subject Re: Bart, a tcc "issue"
Date 2019-11-07 18:22 +0100
Organization Aioe.org NNTP Server
Message-ID <qq1jt6$1pu7$1@gioia.aioe.org> (permalink)
References <uRIwF.17878$kE3.891@fx36.iad>

Show all headers | View raw


On 11/7/2019 12:40 AM, DFS wrote:
> I wrote a distribution of characters counter, and on tcc (0.9.26) on 
> Windows it always undercounts the last character in the set (9).  If you 
> have tcc on Windows maybe you could test it.  Doesn't happen on 
> gcc/MSYS2/Windows.
> 

As Bart pointed out, this is not specific to tcc, but it is related to 
the value of RAND_MAX instead.
The cause of this behavior is that you have a mistake in the randNbr 
function: it does not map correctly the [0, RAND_MAX ] interval to [low, 
high], in particular it does not map the last interval entirely, so you 
get less counts on that interval because the distribution of rand() is 
uniform.

> 
> =====================================================================
> #include <stdlib.h>
> #include <stdio.h>
> #include <time.h>
> #include <math.h>
> #include <string.h>
#include <assert.h>
> 
> int randNbr(int low, int high) {
      // the following is not correct: it should be:
      return low + (rand() * (long long)(high - low + 1)) / (RAND_MAX + 1);
>    // return (low + rand() / (RAND_MAX / (high - low + 1) + 1));
> }
> 
> int main(void) {
> 
>    int i=0,j=0,k=0,cnt=0;
> 
>    srand(time(NULL));
> 
>    char charset[63] = 
> "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
>    int charsetLen = strlen(charset);
>    printf("n = 1000000\n");
>    for(i=0;i<charsetLen;i++) {
>      for(j=0;j<1000000;j++) {
>        k = randNbr(0,charsetLen-1);
          assert(charsetLen > k);
>        if(charset[i] == charset[k]) {cnt++;}
>      }
>      printf("%c = %d\n",charset[i],cnt);
>      cnt=0;
>    }
> exit(0);
> }
> 
> =====================================================================

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Bart, a tcc "issue" DFS <nospam@dfs.com> - 2019-11-06 18:40 -0500
  Re: Bart, a tcc "issue" Bart <bc@freeuk.com> - 2019-11-07 00:03 +0000
    Re: Bart, a tcc "issue" Bart <bc@freeuk.com> - 2019-11-07 00:06 +0000
    Re: Bart, a tcc "issue" Bart <bc@freeuk.com> - 2019-11-07 01:44 +0000
  Re: Bart, a tcc "issue" James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-11-07 10:05 -0500
    Re: Bart, a tcc "issue" DFS <nospam@dfs.com> - 2019-11-07 13:22 -0500
    Re: Bart, a tcc "issue" DFS <nospam@dfs.com> - 2019-11-08 09:19 -0500
      Re: Bart, a tcc "issue" James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-11-08 11:03 -0500
  Re: Bart, a tcc "issue" Manfred <noname@add.invalid> - 2019-11-07 18:22 +0100
    Re: Bart, a tcc "issue" Manfred <noname@add.invalid> - 2019-11-07 18:30 +0100
  Re: Bart, a tcc "issue" Richard Damon <Richard@Damon-Family.org> - 2019-11-08 20:51 -0500
    Re: Bart, a tcc "issue" Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-08 20:59 -0800
      Re: Bart, a tcc "issue" Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-09 23:16 +0000
        Re: Bart, a tcc "issue" Richard Damon <Richard@Damon-Family.org> - 2019-11-09 20:27 -0500
          Re: Bart, a tcc "issue" Bart <bc@freeuk.com> - 2019-11-10 01:38 +0000
            Re: Bart, a tcc "issue" Richard Damon <Richard@Damon-Family.org> - 2019-11-09 20:59 -0500
              Re: Bart, a tcc "issue" Keith Thompson <kst-u@mib.org> - 2019-11-09 19:22 -0800
          Re: Bart, a tcc "issue" Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-10 03:04 +0000
            Re: Bart, a tcc "issue" Richard Damon <Richard@Damon-Family.org> - 2019-11-09 23:04 -0500
              Re: Bart, a tcc "issue" Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-10 13:15 +0000
        Re: Bart, a tcc "issue" Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-10 06:04 -0800
        Re: Bart, a tcc "issue" Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-10 07:49 -0800
          Re: Bart, a tcc "issue" Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-11-10 17:49 +0000
      Re: Bart, a tcc "issue" "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2019-11-11 02:44 -0800
        Re: Bart, a tcc "issue" James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-11-11 13:57 -0500
          Re: Bart, a tcc "issue" "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2019-11-14 16:51 -0800
        Re: Bart, a tcc "issue" Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-11-28 16:03 -0800

csiph-web