Path: csiph.com!xmission!news.alt.net!not-for-mail From: owl Newsgroups: comp.os.linux.advocacy Subject: Re: The substantiation that -highhorse asked for Date: Wed, 29 Aug 2018 06:14:07 +0000 (UTC) Organization: O.W.L. Lines: 65 Message-ID: References: <408dcf85-4477-4314-96fd-a1aa907985db@googlegroups.com> <0LghD.10733$Vl2.3769@fx46.iad> <8825ee40-14b4-4b85-9f95-1af4cdb5e7f6@googlegroups.com> <8g0a008803a.3@rooftop.invalid> NNTP-Posting-Host: boom.rooftop.invalid X-Face: $BHf)vM$6p_?9L`jmOQ54JeNyL+%MZGGRfH8&grb[Y%-jU`MCPAQN=/SVDa{(/67bP(YB}rjV^h>cUh Xref: csiph.com comp.os.linux.advocacy:465361 DFS wrote: > > import random > > print "Group 1: r<0" > print "Group 2: r==0" > print "Group 3: r>0 && r<=10" > print "Group 4: r>10 && r<=100" > print "Group 5: r>100 && r<=1000" > print "Group 6: r>1000 && r<=10000" > print "Group 7: r>10000 && r<=100000" > print "Group 8: r>100000 && r<=1000000" > print "Group 9: r>1000000" > > def printgroup(grp): > print "Found random number " + str(r) + " in Group " + str(grp) > > for j in range(20): > r = random.randint(-1000,1001) > if r < 0: printgroup(1); exit > if r > 1000000: printgroup(9); exit > comps = > [(-1,0),(1,10),(11,100),(101,1000),(1001,10000),(10001,100000),(100001,1000000)] > for i, x in enumerate(range(len(comps))): > if r > comps[i][0] and r <= comps[i][1]: printgroup(i+2); exit > i+=1 > > > > That's 3 if-then-exits to handle 9 comparisons If you call that 3 ifs, then I get to call this zero ifs: anon@lowtide:~/code/ifs$ cat goo.c #include #include void flz(void){printf("a<0\n");} void fgm(void){printf("a>1000000\n");} void f0(void){printf("a==0\n");} void f1(void){printf("a>0 && a<=10\n");} void f2(void){printf("a>10 && a<=100\n");} void f3(void){printf("a>100 && a<=1000\n");} void f4(void){printf("a>1000 && a<=10000\n");} void f5(void){printf("a>10000 && a<=100000\n");} void f6(void){printf("a>100000 && a<=1000000\n");} int main(int argc, char *argv[]) { int a=0; int i=0; void (*fp[1000001])(void)={0}; fp[0]=f0; for(i=1;i<=10;i++) fp[i]=f1; for(i=11;i<=100;i++) fp[i]=f2; for(i=101;i<=1000;i++) fp[i]=f3; for(i=1001;i<=10000;i++) fp[i]=f4; for(i=10001;i<=100000;i++) fp[i]=f5; for(i=100001;i<=1000000;i++) fp[i]=f6; a=atoi(argv[1]); (a<0?flz:a>1000000?fgm:fp[a])(); return 0; } anon@lowtide:~/code/ifs$