Ok. I see. We know pi is an irrational number. However, in J:
x: o.1 1285290289249r409120605684 J converts pi to a rational fraction approximation of pi. So I'm not sure how to generate a vector of truly irrational numbers in J. Can it be done, or is there no way to define/create true irrational numbers in J? I expest it would be hard to support irrational numbers on a finite word-size machine, but then I also thought extended integers would be impossible. I'm guessing you might have to create a new noun type - irrational? On a similar note, is there a way to detect which numbers in a vector of rational fractions will result in infinitely repeating floating-point numbers? Skip On Wed, Jun 13, 2018 at 1:17 PM Roger Hui <[email protected]> wrote: > Mathematically, all finite precision floating point numbers (e.g. 64-bit > floats) are rational since they are all ratios of integers. You have to > specify something (size of repeating pattern? size of denominator? relative > size of numerator/denominator? ??) before the question can be answered. > > For example, with your second vector a, > > ]a=.(20?.20){(100*%1+i.10),(10?.20)*o.1 > 15.708 18.8496 37.6991 9.42478 16.6667 50 25 100 14.2857 50.2655 10 11.1111 > 3.14159 0 33.3333 43.9823 12.5 20 40.8407 56.5487 > > x: a > 5646741500662r359482728877 4414041858589r234172193603 > 376716722090r9992721411 4414041858589r468344387206 50r3 50 25 100 100r7 > 1681140150209r33445220617 10 100r9 1285290289249r409120605684 0 100r3 > 10299431003375r234172193603 25r2 20 15619071123724r382438827... > > x: 4 5$a > 5646741500662r359482728877 4414041858589r234172193603 > 376716722090r9992721411 4414041858589r468344387206 > 50r3 > 50 25 > 100 100r7 1681140150209r33445220617 > 10 100r9 > 1285290289249r409120605684 0 > 100r3 > 10299431003375r234172193603 25r2 > 20 15619071123724r382438827053 188358361045r3330907137 > > x:!.0 ]4 5$a > 4421398595017775r281474976710656 2652839157010665r140737488355328 > 2652839157010665r70368744177664 2652839157010665r281474976710656 > 2345624805922133r140737488355328 > 50 25 > 100 100r7 > 884279719003555r17592186044416 > 10 100r9 > 884279719003555r281474976710656 0 > 2345624805922133r70368744177664 > 3094979016512443r70368744177664 25r2 > 20 1436954543380777r35184372088832 > 1989629367757999r35184372088832 > > Some are "obviously" rational and some aren't but all are mathematically > rational. > > > > On Wed, Jun 13, 2018 at 11:06 AM, Skip Cave <[email protected]> > wrote: > > > Roger, > > You're right. The array i generated was all rational numbers. I'll try > > again: > > > > ]a=.(20?20){(100*%1+i.10),(10?20)*o.1 > > > > 6.28319 10 11.1111 16.6667 25.1327 100 0 21.9911 33.3333 56.5487 12.5 > > 31.4159 53.4071 14.2857 25 43.9823 50 12.5664 59.6903 20 > > > > > > Is that a better combination of rational and irrational numbers? > > > > > > I think I was originally thinking that floating-point numbers that have > > infinitely repeating patterns after the decimal are irrational. but that > is > > not the correct definition of irrational. However, a verb that could find > > those kinds of numbers (infinitely repeating pattern) in a vector of > > floating point numbers could be useful. > > > > > > Skip > > > > > > > > > > On Wed, Jun 13, 2018 at 12:44 PM Roger Hui <[email protected]> > > wrote: > > > > > What's an irrational number in this context? Your list a are > reciprocals > > > of integers and so are all rational. On the other hand, going just by > > the > > > display, 0.5 is a rational number (1%2), but since the display is to 6 > > > significant digits, for all you know 0.5 could be > > > 0.500000314159265358979... (0.5+ pi*1e_7) and irrational. > > > > > > > > > On Wed, Jun 13, 2018 at 10:29 AM, Skip Cave <[email protected]> > > > wrote: > > > > > > > Here's another problem similar to my previous one about finding > > integers > > > in > > > > a floating point array: > > > > > > > > Find the irrational numbers in a floating-point array: > > > > > > > > Given the vector a: > > > > > > > > ]a =. % 1+i.20 > > > > > > > > 1 0.5 0.333333 0.25 0.2 0.166667 0.142857 0.125 0.111111 0.1 > 0.0909091 > > > > 0.0833333 0.0769231 0.0714286 0.0666667 0.0625 0.0588235 0.0555556 > > > > 0.0526316 0.05 > > > > > > > > > > > > Create a function that will generate a boolean array indicating the > > > > locations of the irrational numbers in a. > > > > > > > > > > > > Skip > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see > http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
