0
|
3932 Views
|
3 Replies
|
2 Total Likes
View groups...
Share
GROUPS:

Question about turning the output of Reduce into a Range

Posted 11 years ago
 I'd like to turn the output of this:f[8, n_] = n (3 n - 2);Reduce[100000 > f[8, n] > 10000 && n > 0, n, Integers]out[1]= n \[Element] Integers && 59 <= n <= 182 into the actual list Range[59,182].How do I do that programatically?Thanks in advance!
3 Replies
Sort By:
Posted 11 years ago
 May be you can parse it out? Something likeClear[f, n, x, y];f[8, n_] = n (3 n - 2);r = Reduce[100000 > f[8, n] > 10000 && n > 0, n, Integers];Cases[r, Inequality[x_, __, y_] :> Range[x, y]];gives {{59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,   76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,   93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,   108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,   121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,   134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,   147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,   160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,   173, 174, 175, 176, 177, 178, 179, 180, 181, 182}}But have to check to see if this covers other cases. Only tried it on your input. Can't guarantee it will work for all cases now.
Posted 11 years ago
 Reduce has an internal control for this sort of thing. Could increase the limit to how many get explicitly listed as follows.SetSystemOptions[  "ReduceOptions" -> {"DiscreteSolutionBound" -> 10000}];
Posted 11 years ago
 Thanks Nasser!Caveat noted.  What if instead I wanted the 5-digit numbers that f[8,n] produces?  Is there an easier way than this:Clear[f, n, x, y];f[8, n_] = n (3 n - 2);r = Reduce[100000 > f[8, n] > 10000 && n > 0, n, Integers];Map[f[8,#]&, Cases[r, Inequality[x_, __, y_] :> Range[x, y]]]Thanks again!-Joe