Share
Share with:
Link:
Copy link
Piotr, "Thread Necromancy" -- bringing a long-dead thread "back to life" -- is generally considered bad Internet etiquette, unless you have a useful or significant observation to add to that conversation. Complaining about the thread does not count as a useful or significant observation. Whether or not this thread is in the appropriate place is not worth troubling people about, given that the conversation was started and died out many months ago. (Icarus may certainly revive this thread if and when he has some update about the topic, such as some improvement or update to his numberbases site.)Piotr @ Aug 9 2015, 07:02 PM wrote: Posting it in category Non-Dozenal bases is completely misleading. This topic also describes bases larger than 60, so it would be better to post it in General category.
Well, if there is no prohibition, here's a list of bases I'd love to have a tour to look at that are not already in:icarus @ Jun 19 2013, 09:09 PM wrote: Oschkar,
There is no prohibition for you to do so, actually! I am very interested in your argam extension!
I have one big job moving out and a less intensive job starting, then it seems quiet. So next month will resume the production of numberbases.com. I'd spent about a month of cut-up time on polychora. It seems whenever I am rebooting my affection for number bases, I go through polychora first. There, I see Wendy's name and contributions.
As a first try at a "guest post" (since I haven't seen many very new entries on the tour), I've done base 40. Hopefully it's OK and I didn't miss anything very important.Double sharp @ Oct 17 2015, 04:47 AM wrote:Well, if there is no prohibition, here's a list of bases I'd love to have a tour to look at that are not already in:icarus @ Jun 19 2013, 09:09 PM wrote: Oschkar,
There is no prohibition for you to do so, actually! I am very interested in your argam extension!
I have one big job moving out and a less intensive job starting, then it seems quiet. So next month will resume the production of numberbases.com. I'd spent about a month of cut-up time on polychora. It seems whenever I am rebooting my affection for number bases, I go through polychora first. There, I see Wendy's name and contributions.
{2, 3, 4, 22, (23), 26, 27, (29), 32, (33), (35), (38), 40, (44), (45), 50, 54, 56, 64}
I might try some of the ones in the twenties, to give complete coverage for the range {2-30}. {32, 64} have been covered elsewhere in mashups, and {27, 29, 40} have been covered as "random" bases, so they'd be easier.
I don't really have the time to try to do grand bases: if I did one at all, it'd be {180} to get the complete sequence of HCNs until {720} in the tour. I'd be scared to do the low bases {2, 3, 4} because they are so exceptional - so I think those are best left to Icarus. (^_^)
I also believe {2310, 2520} deserve a place here, but what an effort that would be!
Nevertheless I find I don't really have very good ideas for nice subtitles, like what Icarus has done for many of the covered bases. The personifications of bases are an interesting idea: I may need to think more about this.
Code: Select all
[C:\save\newin\tcmd18x64]aj 40 16
factorising 40A16 = 6553600000001
first trying brute force division by small primes
PRIME FACTOR 17
PRIME FACTOR 17
PRIME FACTOR 113
PRIME FACTOR 337
PRIME FACTOR 641
PRIME FACTOR 929
I added a note about quadragesimal Wieferich primes (following Icarus' new preference in terminology).wendy.krieger @ Oct 17 2015, 12:01 PM wrote: Hi Double Sharp.
I did a thread on 54 v 56. These have the same signiture, but the loosest and tightest oppositions (reciprocal pairs) of any base less than 100. 56 has the joys that among its regulars are 7^13 and 8^13. The former, written in base 56 is the best 7-smooth approximation to pi, using numbers under 10^9.
So the ripple-13 here contains in effect, pi, 2pi, 4pi, 56/pi, 28/pi and 14/pi.
Also, Icarus has been copying the sevenite entries into his tour-de-bases, so 48 has 7 and 257 as sevenite (Weiferich primes). Likewise 40 has 40: 11 17 307 66431. The number in base 40, ie 40^8+1, has a lot of divisors, eg
where 113 * 929 = 18^4 +1.Code: Select all
[C:\save\newin\tcmd18x64]aj 40 16 factorising 40A16 = 6553600000001 first trying brute force division by small primes PRIME FACTOR Â Â 17 PRIME FACTOR Â Â 17 PRIME FACTOR Â Â 113 PRIME FACTOR Â Â 337 PRIME FACTOR Â Â 641 PRIME FACTOR Â Â 929
You're welcome! Next will be {54, 64} as promised. I intend to return to {32, 50} also to complete the binary-power range and the even numbers flanked by composites up to 64.icarus @ Oct 19 2015, 02:37 PM wrote: Double Sharp:
Thanks for extending the tour! I've incorporated the threads you added to the tour to the menu post. I'd been out of town.
I am now working on code that will automatically generate a tour (possibly in parts).
Code: Select all
regularSet[n_, e_] := Block[{f, a},
f[x_] := First /@ FactorInteger@ x;
a = f@ n;
{1}~Join~Select[Range[n^e], Complement[f@ #, a] == {} &]]
enCode[m_, n_] :=
StringJoin[
FromCharacterCode[
Which[# < 10, # + 48, 9 < # < 36, # + 87,
True, # + 29 ] & /@ #] &@ IntegerDigits[m, n]]
regularUnitFractions[b_, r_] := Block[{t = Rest@ regularSet[b, r]},
Transpose@{enCode[#, b] & /@ t,
StringJoin[".",
enCode[#, b] & /@
PadLeft[First@ #, Length@ First@ # + Abs[Last@ #]] &@
RealDigits[1/#, b]] & /@ t}] // TableForm
Code: Select all
regularUnitFractions[15, 4]
3 .5
5 .3
9 .1a
10 .1
1a .09
1c .085
30 .05
50 .03
56 .02ba
85 .01c
90 .01a
100 .01
113 .00dd5
1a0 .009
1c0 .0085
2ba .0056
300 .005
339 .00496a
500 .003
560 .002ba
850 .001c
900 .001a
9ac .0018235
dd5 .00113
1000 .001
1130 .000dd5
1a00 .0009
1c00 .00085
1e26 .0007ab1a
2ba0 .00056
3000 .0005
3390 .000496a
496a .000339
5000 .0003
5600 .0002ba
5c73 .000288a85
8500 .0001c
9000 .0001a
9ac0 .00018235
dd50 .000113
10000 .0001
Code: Select all
colorCode[
Â w_] := {Last@ #, RGBColor[#] &@ Take[#, 3],
Â Â StringJoin[
Â Â Â FromCharacterCode[If[# < 10, # + 48, # + 87 ] & /@ #] &@
Â Â Â Â Â If[Length@ # == 1, PadLeft[#, 2], #] &@
Â Â Â Â IntegerDigits[IntegerPart@ Times[#, 256], 16] & /@
Â Â Â Take[#, 3]]} & /@ w //
Â TableForm; colorCode@{{0.84375, 0.125, 0.15625, "d"}, {0.96875,
Â 0.53125, 0.5625, "dc"}, {0.96875, 0.78125, 0.78125, "di"}, {0.75,
Â 0.15625, 0.75, "u"}, {0.96875, 0.78125, 0.65625, "gi"}, {0.96875,
Â 0.65625, 0.46875, "gc"}, {0.953125, 0.46875, 0.1875, "g"}, {0.8125,
Â Â 0.90625, 0.125, "ha"}, {0.78125, 0.6875, 0.1875, "hb"}, {0.5625,
Â 0.75, 0.25, "ho"}, {0.99609375, 0.9375, 0, "h"}, {0.9375, 0.890625,
Â Â 0.75, "hh"}, {0.78125, 0.875, 0.625, "hoi"}, {0.875, 0.84375, 0.5,
Â Â "hbi"}, {0.90625, 0.9609375, 0.5625, "hai"}, {0, 0.6640625, 0.625,
Â Â "taa"}, {0.5, 0.1875, 0.5625, "tbb"}, {0, 0.4375, 0.75,
Â "too"}, {0.74609375, 0.75, 0.75390625, "tpp"}, {0.83984375,
Â 0.84375, 0.84765625, "tp"}, {0.90625, 0.91015625, 0.9140625,
Â "t"}, {0.78125, 0.8671875, 0.90625, "to"}, {0.78125, 0.765625,
Â 0.90625, "tb"}, {0.78125, 0.859375, 0.6953125, "ta"}}
Code: Select all
intuitive[m_, n_] :=
Â If[IntegerQ[m/Power @@ First@ FactorInteger@ (n^2 - 1)], False,
Â Or[Complement[First /@ FactorInteger@ m,
Â Â Â First /@ FactorInteger@ n] == {},
Â Â Divisible[Times[n^2 - 1, If[And[Mod[n, 6] == 0, n <= 18], 5, 1]],
Â Â Times @@ Select[Power @@ Transpose@ FactorInteger@ m, CoprimeQ[n, #] &]]]]
Code: Select all
2 Coprime: Evenness test in odd base.
3 Regular: Divisor.
4 Coprime: Alpha Factor.
5 Regular: Divisor.
6 Semicoprime: Use 2 3.
7 Coprime: Omega Factor.
8 Coprime: Alpha Factor.
9 Regular: Richness 2.
10 Semicoprime: Use 2 5.
12 Semicoprime: Use 3 4.
14 Coprime: Omega Factor.
15 Regular: Base.
16 Coprime: Alpha Factor.
18 Semicoprime: Use 2 9.
20 Semicoprime: Use 4 5.
21 Semicoprime: Use 3 7.
24 Semicoprime: Use 3 8.
25 Regular: Richness 2.
27 Regular: Richness 3.
28 Coprime: Alpha-Omega Factor.
30 Semicoprime: Use 2 3 5.
Code: Select all
2 Regular: Divisor.
3 Regular: Divisor.
4 Regular: Divisor.
5 Coprime: Alpha-2 Factor
6 Regular: Divisor.
8 Regular: Richness 2.
9 Regular: Richness 2.
10 Semicoprime: Use 2 5.
11 Coprime: Omega Factor.
12 Regular: Base.
13 Coprime: Alpha Factor.
15 Semicoprime: Use 3 5.
16 Regular: Richness 2.
18 Regular: Richness 2.
20 Semicoprime: Use 4 5.
22 Semicoprime: Use 2 11.
24 Regular: Richness 2.
26 Semicoprime: Use 2 13.
27 Regular: Richness 3.
30 Semicoprime: Use 2 3 5.
How nice! 641 is pretty interesting for a prime base, as its omega 640 = 2^7 * 5 gives incredible binary divisibility, while the alpha 642 = 2 * 3 * 107 gives the minimal ternary coverage. As a result the most useful and common composites gain intuitive divisibility tests, as prime powers up to {2^8, 3, 5, (107)} are covered.icarus @ Oct 30 2015, 10:31 PM wrote:Yes! (Now I changed it to 641 ; ) )
That makes sense. Thirty fits well on my phone as well. When doing the divisibility test map for octal I extended it to thirty-two as 36_{o} is a little weird in octal, but then it went a little off the screen on my phone IIRC.icarus @ Oct 30 2015, 10:31 PM wrote:The numeralRange routine produces a rectangular field for the digits of base b when the number of digits exceeds a magic threshold. The threshold uses the first divisor of b >= Sqrt( b ), and if Sqrt( b ) > 30, the first divisor of b <= 30, or forces 30 if no clement width can be found. I do this because I generally want the table to be more or less square but it it's going to be rectangular, I want a wider box than taller (most often). I use a divisor to ensure a rectangle for composites. For primes, I find a nearby composite larger than the prime with a clement divisor and use that, and we get a few (but less than a row) of extra "numerals". So the digit maps of large bases will have a few extra "numerals" when they are prime. The algorithm is built such that it would make most of the decisions I would be inclined to make. 30 = primorial(prime(3)), but more practically, it fits the width of my website screen and most screens these days.
I agree - alpha is usually pretty important; though it's not a digit, it enjoys alpha benefits just the same. This way it would always get shown, even if it is a prime (like in decimal, duodecimal, or hexadecimal).icarus @ Oct 30 2015, 10:31 PM wrote:I have moved away from "digit 0" signifying 0 (mod b ) (which it does - it is not a normal digit) because it also signifies zero when it stands alone. I think showing the range 1...b is natural and have considered showing 1...(b + 1) and will do that for primes {p, q} < b + 1.
I think it still depends somewhat on the number of distinct sequences to memorise: to take an extreme example, 625 has richness 4 in decimal, but there are only 16 digit-sequences to learn, so it may well be practical (though pretty useless). OTOH, 16 has richness 4 as well, but there are 625 digit-sequences to learn, so it's completely impractical (and being two levels up from the highest memorisable binary-power test for 4, the range-folding algorithm is incredibly baroque and difficult to use).icarus @ Oct 30 2015, 10:31 PM wrote:Today I began slaying the automatic generation of intuitive divisibility tests for bases. At the outset this seemed like an easy task. I wrote a threshold for this program to pre-validate numbers n in base b that have intuitive divisibility tests.
The "intuitive" divisibility tests include:
Regular tests: base itself, integer powers e of the base with e >= 2, divisors, regular numbers with richness <= 2, or richness = 3 IF the regular number g is such that b - g < 3. The regular number threshold for richness and string length of multiples of g in the multiplication table of b is not arithmetic-based but "soft". Regular tests with richness > 3-4 are considered impractical and labeled such, but still shown.
Those for 7 would be divisors of (b^6 - 1) in the worst-case scenario, so I'm not sure they are usable in most of the human scale bases, as there are so many multiples below "1000". What I think we need to do is to set down exactly how many digit-sequences we need to remember to use the test, and then impose a threshold beyond which the test is considered impractical.icarus @ Oct 30 2015, 10:31 PM wrote:Neighbor-factor tests: factors of (b^2 - 1): if divisors of (b + 1), alpha, if divisors of (b - 1), omega.
Divisor of (b^4 - 1) for bases b = 0 (mod 6) and <= 18. This thus enables SPD for 5 in bases 12 and 18, however I am wondering if those for 7 should be included.
Looking forward to see how this works out - it looks really good even now!icarus @ Oct 30 2015, 10:31 PM wrote:Inherited tests. The algorithm determines impracticality of the regular part and the mutually coprime "silos" of prime-divisor-powers of n (for n = 12, the "silos" are {4, 3}. Decimally, 4 has a 2-richness regular test and an omega factor test, but the algorithm merely will say "if divisible by 3 and 4, then...")
The threshold defaults to 30 and tends to be that for odd bases but prefers the regular number g base b that exceeds 30 by less than or equal to six. (Many even b have 32, bases b = 0 (mod 6) have 36, bases {31, 62} have 31, bases {33, 66} have 33, bases {34, 68} have 34, base {35, 70} have 35, etc.) I wanted a responsive threshold for the cutoff in the vicinity of the 3rd primorial, because for intuitive tests, we're generally looking at small numbers.
The prevalidation was tricky but I have it down now:Basically, within the range bounded by the threshold, this finds any regular number in the range. Then it finds any number with a coprime part that is a divisor of (b^2 - 1). It also adds 5 if in the SPD-useful range. For odd bases, it disqualifies any power of 2 greater than that power of 2 in (b^2 - 1). This reduces the work the idtCode routine needs to perform to generate HTML code.Code: Select all
intuitive[m_, n_] := Â If[IntegerQ[m/Power @@ First@ FactorInteger@ (n^2 - 1)], False, Â Or[Complement[First /@ FactorInteger@ m, Â Â Â First /@ FactorInteger@ n] == {}, Â Â Divisible[Times[n^2 - 1, If[And[Mod[n, 6] == 0, n <= 18], 5, 1]], Â Â Times @@ Select[Power @@ Transpose@ FactorInteger@ m, CoprimeQ[n, #] &]]]]
Right now the program merely declares the arithmetic relationship of the vetted n to base r and its subdivision. For semicoprimes, it suggests using "silo" factors.
Examples: base 15:Dozenal:Code: Select all
2 Coprime: Evenness test in odd base. 3 Regular: Divisor. 4 Coprime: Alpha Factor. 5 Regular: Divisor. 6 Semicoprime: Use 2 3. 7 Coprime: Omega Factor. 8 Coprime: Alpha Factor. 9 Regular: Richness 2. 10 Semicoprime: Use 2 5. 12 Semicoprime: Use 3 4. 14 Coprime: Omega Factor. 15 Regular: Base. 16 Coprime: Alpha Factor. 18 Semicoprime: Use 2 9. 20 Semicoprime: Use 4 5. 21 Semicoprime: Use 3 7. 24 Semicoprime: Use 3 8. 25 Regular: Richness 2. 27 Regular: Richness 3. 28 Coprime: Alpha-Omega Factor. 30 Semicoprime: Use 2 3 5.
Things to do are to add the combinations and number of combinations for the regulars. If the number of combinations exceeds 12, I will abbreviate the list to only show the first 3 and the last one. Then it will have to handle range-folding for regulars with richness 2 and 3. I've entered all the language components "If an arbitrary number ...", " if the least significant ", " place values are one of ", etc. so all the program will do is catenate the appropriate components. The omega testable numbers are easy: " if the digital root of x is divisible by ". The inheritors are easy and will be converted to say " if the number x is divisible by " and list the prime-divisor-powers of x. Then I'll have the algorithm add the <ul>, <li> tags, catenate the language, etc. and the component will be complete.Code: Select all
2 Regular: Divisor. 3 Regular: Divisor. 4 Regular: Divisor. 5 Coprime: Alpha-2 Factor 6 Regular: Divisor. 8 Regular: Richness 2. 9 Regular: Richness 2. 10 Semicoprime: Use 2 5. 11 Coprime: Omega Factor. 12 Regular: Base. 13 Coprime: Alpha Factor. 15 Semicoprime: Use 3 5. 16 Regular: Richness 2. 18 Regular: Richness 2. 20 Semicoprime: Use 4 5. 22 Semicoprime: Use 2 11. 24 Regular: Richness 2. 26 Semicoprime: Use 2 13. 27 Regular: Richness 3. 30 Semicoprime: Use 2 3 5.
This segment will eliminate all the drudgery of writing that language by hand, prone to missing a relationship or misstating the rule. These may be color-coded with a square character in the color canon representation of their regular and coprime factors.
Then we will move on to segment A, the first part of the boilerplate and work down.
I do agree with you Double Sharp that the entries can't be fully auto-generated. The auto-generation applies to the parts outside of the travelogue. The segment that describes auxiliaries will not be as prosaic and will merely show possibilities and common fractions (the natural ones, one fifth, one sixth, one eighth, etc.) in the system. The prosaic narrative can be incorporated in the travelogue.
I need to add grid labeling to the flexCell routine. This would require a way to recognize labeling and probably a flag. I will hold on this for a little while as I try to establish the other parts of the project.
The project could be suddenly interrupted by "real work", and I have to update my website with new project examples (i.e., "real work") but am focused on this project otherwise.