Yes, I think it was ok to generalise, but I’d missed what they meant by
proportionality.
So, if I define a different quadruplet,
q=: 6 + 7*1 2 5 10
where 1:2 = 5:10, Jose’s function works fine:
(-/ .* % -/ .+)@:(2 2&$) q
6
which is the required offset.
fwiw,
dgcd q. NB. gcd of differences
7
(|~ dgcd) q
6 6 6 6
Sorry for the confusion,
Mike
Please reply to [email protected].
Sent from my iPad
> On 15 Aug 2018, at 00:33, Jose Mario Quintana <[email protected]>
> wrote:
>
> After I saw your message I searched for the particular Quora problem and
> this is what I found,
>
> https://www.quora.com/What-number-must-be-subtracted-from-21-38-55-and-106-each-so-that-the-remainders-technically-differences-are-proportional
>
> It seems to me that the shape of the array is restricted to be exactly 4
> and the numbers do not have to be integers. Am I wrong?
>
>
> On Tue, Aug 14, 2018 at 7:00 PM, 'Mike Day' via Programming <
> [email protected]> wrote:
>
>> It should work on arrays of the form
>> a + b * i, where a and b are integer scalars, and i is an integer
>> vector.
>> So, if
>> q=: 6 + 7*1 2 5 11 23,
>> applying this function yields
>> (-/ .* % -/ .+)@:(2 2&$) q
>> 7.4
>> I think you need instead something like
>> Difference’s greatest common divisor,
>> dgcd =: +./@:(2 -~/\ ])
>> So
>> dgcd q
>> 7
>>
>> It’s a bit more complicated to recover the factors, 1 2 5 ..., which seem
>> to be required in the Quora problem:
>> (](([-|~)%])dgcd) q
>> 1 2 5 11 23
>> This works for the original array, too,
>> (](([-|~)%])dgcd) 21 38 55 106
>> 1 2 3 6
>>
>> And
>> dgcd 21 38 55 106
>> 17
>>
>> Sorry for any formatting problems - typing on iPad,
>>
>> Mike
>>
>>
>> Please reply to [email protected].
>> Sent from my iPad
>>
>>> On 14 Aug 2018, at 23:18, Jose Mario Quintana <
>> [email protected]> wrote:
>>>
>>> (-/ .* % -/ .+)@:(2 2&$)21 38 55 106
>> ----------------------------------------------------------------------
>> 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