Group Abstract Group Abstract

Message Boards Message Boards

Have Random Integers by the Number of Digits and through Real Numbers

POSTED BY: Claudio Chaib

This version of the code below to generate random integers through real numbers, starting from a randomized part in the guide number, only makes the random shuffle after the number segment has been randomly selected (thus acquiring a behavior Even closer to the guide number:

num = Pi;
Text[Style[num, Large, Orange]]
ddd = 10;
Text[Style[ddd, Medium, Pink]]
dig = 100000;
nn = Abs[N[num, dig]];
div = Divisors[ddd];
hh = If[0.001 < nn < 1000, 
  Text[Style["NUMBER SIZE OK", Medium, Bold, Green]], 
  Text[Style["CHANGE NUMBER SIZE", Large, Bold, Red]]]
fi = IntegerDigits[
   If[100 < IntegerPart[nn*10^dig]/10^dig < 1000, 
    IntegerPart[nn*10^(dig - 3)], 
    If[10 < IntegerPart[nn*10^dig]/10^dig < 100, 
     IntegerPart[nn*10^(dig - 2)], 
     If[0.1 < IntegerPart[nn*10^dig]/10^dig < 1, 
      IntegerPart[nn*10^dig], 
      If[IntegerPart[nn*10^dig]/10^dig > 1, 
       IntegerPart[nn*10^(dig - 1)], 
       If[0.01 < IntegerPart[nn*10^dig]/10^dig < 0.1, 
        IntegerPart[nn*10^(dig + 1)], 
        IntegerPart[nn*10^(dig + 2)]]]]]]];
m = FromDigits[RandomInteger[dig - ddd, 1]];
mm = FromDigits[RandomInteger[dig - ddd, 1]];
mmm = FromDigits[RandomInteger[dig - ddd, 1]];
mmmm = FromDigits[RandomInteger[dig - ddd, 1]];
mmmmm = FromDigits[RandomInteger[dig - ddd, 1]];
mmmmmm = FromDigits[RandomInteger[dig - ddd, 1]];
geni = Take[fi, {m, m + ddd - 1}];
fei = If[FromDigits[Take[geni, 1]] > 0.5, geni, 
   Take[fi, {mm, mm + ddd - 1}]];
ffi = If[FromDigits[Take[fei, 1]] > 0.5, fei, 
   Take[fi, {mmm, mmm + ddd - 1}]];
fgi = If[FromDigits[Take[ffi, 1]] > 0.5, ffi, 
   Take[fi, {mmmm, mmmm + ddd - 1}]];
fhi = If[FromDigits[Take[fgi, 1]] > 0.5, fgi, 
   Take[fi, {mmmmm, mmmmm + ddd - 1}]];
fii = If[FromDigits[Take[fhi, 1]] > 0.5, fhi, 
   Take[fi, {mmmmmm, mmmmmm + ddd - 1}]];
cxc = RandomSample[fii];
fen = If[FromDigits[Take[cxc, 1]] > 0.5, cxc, RandomSample[fii]];
ffn = If[FromDigits[Take[fen, 1]] > 0.5, fen, RandomSample[fii]];
fgn = If[FromDigits[Take[ffn, 1]] > 0.5, ffn, RandomSample[fii]];
fhn = If[FromDigits[Take[fgn, 1]] > 0.5, fgn, RandomSample[fii]];
fin = If[FromDigits[Take[fhn, 1]] > 0.5, fhn, RandomSample[fii]];


Text[Style[fin, Small, Purple]]
Text[Style[FromDigits[fin], Medium, Bold, Blue]]

Grid[{{"dig 1", "dig 2", "dig 3", "dig 4", "dig 5", "dig 6", "dig 7", 
   "dig 8", "dig 9", "dig 0"}, DigitCount[FromDigits[fin]]}, 
 Frame -> All, Background -> {None, {{LightRed, Green}}}]

ListPlot[fin, PlotRange -> {{0, ddd + 1}, {-1, 10}}, 
 PlotStyle -> PointSize[Medium], PlotTheme -> "Scientific", 
 Ticks -> Automatic]

div;
cc = ddd/%;
dd = FromDigits[Take[cc, {IntegerPart[Sum[1, {k, cc}]/2]}]];
Partition[fin, dd];
ArrayPlot[Partition[fin, dd], 
 ColorFunction -> ColorData["ThermometerColors"], Mesh -> All, 
 PixelConstrained -> True, MeshStyle -> Blue, PlotTheme -> "Detailed",
  PlotLegends -> Placed[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, Below], 
 ImageSize -> 400]

PieChart[{DigitCount[FromDigits[fin]]}, 
 SectorOrigin -> {Automatic, 1}, 
 PlotTheme -> {"BoldScheme", "VibrantColor"}, 
 ChartElementFunction -> "NoiseSector", 
 ChartLabels -> {DigitCount[FromDigits[fin]]}, 
 ChartLegends -> {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}]
POSTED BY: Claudio Chaib
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard