Skip to content

Posts from Quiz Auto-translated

5.0 (1 rating)
User Avatar
#1052
Auto-translated
You can search for puzzles of any difficulty. I will try to understand each one.
Всё не так плохо как Вы думаете. Всё намного хуже!
User Avatar
#1053
Auto-translated
I haven't checked all cases, but at a glance, there's a double check everywhere, and it's possible to determine which bit is corrupted and its actual value.

However, this example turned out to be quite complex. Perhaps someone will find a simpler solution.
Ah, in my opinion, using XORs is quite elegant! I like it!
 

К А
Стикеры GBF в Telegram
User Avatar
#1054
Auto-translated
It's a bit confusing that i1 is passed to both bit1 and bit2. We have very little room for information there, will this definitely not have any impact? But if it works, then okay...
 

К А
Стикеры GBF в Telegram
User Avatar
#1055
Auto-translated
No, it doesn't work. Post 1022.

Added 2 minutes later
So, we can keep guessing.
Всё не так плохо как Вы думаете. Всё намного хуже!
User Avatar
#1056
Auto-translated
Well, I did use hash functions in one case, but I called them parity for two bits. But the idea itself is interesting, to transmit the function directly instead of the message itself.

Added 1 hour 2 minutes ago
Function F is a hash, which is also parity (0 - identical characters, 1 - different characters). The message itself is ABCD, and the numbers are the bit numbers. Bit 1: F(A, B) Bit 2: F(C, D) Bit 3: F(1, 2) The presence or absence of an error can be seen among the first three bits. Bit 4: F(A, D) Bit 5: F(B, C) Bit 6: A Bit 7: C If there is an error in the first three bits, we can still read the message. Let's assume there is no error there. We can check for an error in bits 4 and 5: We definitely know from bits 1 and 2 whether A and B are the same or different, and C and D are the same or different. That is, 00, 01, 10, or 11. If bits 1 and 2 have values of 00 or 11, then bits 4 and 5 should also be either 00 or 11 (both combinations of identical values are allowed). For 01 and 10, the unknown values, if there is no error, should also be 01 and 00. If there is an error among bits 4 and 5, we still construct the message using bits 1, 2, 6, and 7. Let's assume there is no error. The error is in A, in C, or there is no error at all. If there is no error at all, then by substituting A and C into functions 1, 2, and 3, 4, we get the original message in both cases, and it will be the same. If it is different, then by inverting either A or C, we can absolutely accurately determine F(A, C). I don't know why, but it seems that by solving a system of equations with this function and the functions from bits 1-2, 4-5, we can find out whether the error is in A or C. But it seems not, but I'm too lazy to think about it anymore. But I have improved the previous result. I can read the message in 5 cases of a corrupted bit and in the case of no error, and only in the case of corruption of two specific bits do I have 2 message options, and I know about it. We can also try, but take the control bit (bit 3) as F(2, 6).
User Avatar
#1057
Auto-translated
yes, indeed. In my solution, in case of bit5 failure, there is an ambiguity. So, it's not suitable.
Okay, let's go back to message transmission and the "checksum".
Only in the checksum, we XOR not pairwise, like Uranus, but the first bit with each of the following ones.

Message: i1 i2 i3 i4

We transmit:
bit1: i1
bit2: i2
bit3: i3
bit4: i4
bit5: xor(bit1, bit2)
bit6: xor(bit1, bit3)
bit7: xor(bit1, bit4)

I'll check for all variants a little later.

Added after 2 hours 58 minutes
Hmm, there are still ambiguities.
This option is also not working.
..разым двазым трызым рызым пята лата сигерь мата локом боком крюк за крюк из бульмы бульма урюк..
Знание некоторых закономерностей освобождает от изучения многих фактов.
Мечты сбываются рано или поздно, так или иначе.
In reply to Uranium235
User Avatar
#1058
Auto-translated
Uranium235
Well, I did have HOGs in one case, but I called them parity for two bits.
But the idea itself is interesting, to transmit a function instead of the message itself.

Added 1 hour 2 minutes ago
Function F is a HOG, it's also parity (0 - identical characters, 1 - different characters). The message itself is ABCD, the numbers are the bit numbers.
Bit 1: F(A, B)
Bit 2: F(C, D)
Bit 3: F(1, 2)
It shows the presence/absence of an error among the first three bits
Bit 4: F(A, D)
Bit 5: F(B, C)
Bit 6: A
Bit 7: C
If there is an error in the first three bits, we can successfully read the message. Let's assume there is no error there.
We can check for an error in bits 4 and 5:
We definitely know from bits 1 and 2 whether A and B are the same or different, and C and D are the same or different.
That is, 00, 01, 10 or 11.
If bits 1 and 2 have values 00 or 11, then bits 4 and 5 should also be either 00 or 11 (both combinations of identical values are acceptable).
For 01 and 10, the unknown values should also be 01 and 00 in the absence of an error.
If there is an error among bits 4 and 5, we still construct the message using bits 1, 2, 6, 7. Let's assume there is no error. The error is in A, in C, or there is no error at all.
If there is no error at all, then by substituting A and C into functions 1, 2 and 3, 4, we get the original message in both cases, and it will be the same. If it's different, then by inverting either A or C, we can determine F(A, C) with absolute certainty. I don't know why, but it seems that by solving a system of equations with this function and the functions from bits 1-2, 4-5, we can find out whether the error is in A or C. But it seems not, but I'm too lazy to think about it anymore. But I have improved the previous result. I can read the message in 5 cases of a corrupted bit and in the case of no error, and only in the case of corruption of two specific bits do I have 2 message options, and I know about it.
We can also try, but take the control (3rd bit) as F(2, 6).

This is the best so far, although I haven't read what Sesame wrote yet. Here, you can definitely detect that there was an error! But still, for example...
According to your algorithm, the combination 0000 is encoded as the message 0000000,
and the combination 1111 is encoded as the message 0000011.
But let's say we received the combination 0000010 :(
Yes, it's clear that one bit, or even more, has been corrupted - it's the sixth or seventh bit. But how do we know whether we transmitted 0000 and corrupted the sixth bit from 0 to 1, or 1111 and corrupted the seventh bit from 1 to 0???

Added 11 minutes ago
Sesame
yes, indeed. In my solution, in case of bit5 failure, there is an ambiguity. So it's not suitable.
okay, let's go back to transmitting the message and a "checksum".
Only in the checksum, we XOR not pairwise, as Uranium does, but the first bit with each of the following.

Message: i1 i2 i3 i4

We transmit
bit1: i1
bit2: i2
bit3: i3
bit4: i4
bit5: xor(bit1,bit2)
bit6: xor(bit1,bit3)
bit7: xor(bit1,bit4)

I'll check for all options later.

Added 2 hours 58 minutes ago
meh, there are still ambiguities.
This option is also not working.
It's also not bad. An error is detected. But, for example, if we received 0100000, it's not clear whether we transmitted 0000 or 0100, because 0000 corresponds to 0000000, and 0100 corresponds to 0100100, and here is the same situation as with Uranium235.
Всё не так плохо как Вы думаете. Всё намного хуже!
User Avatar
#1059
Auto-translated
I came up with something else based on the ideas mentioned above, but I checked it with a program, and it seems to fail somewhere. bit1=xor(i1,i2) bit2=xor(i1,i3) bit3=xor(i1,i4) bit4=xor(i2,i3) bit5=xor(i2,i4) bit6=xor(i3,i4) bit7=i1 It failed for 1001 and 0110. 1001: 0011001 0110: 0011000 If the Germans mess up the last bit in one version, they will match. Too bad... Well, I tried too.
 

К А
Стикеры GBF в Telegram
User Avatar
#1060
Auto-translated
Hmm, this algorithm seems to work fine:
bit1=xor(i1,i2)
bit2=xor(i1,i3)
bit3=xor(i1,i4)
bit4=xor(i2,i3)
bit5=xor(i2,i4)
bit6=i2
bit7=i1

Oops, I made a mistake; I had a reversed XOR in the checks. But it doesn't matter, the check also works with the correct XOR. They operate symmetrically.
 

К А
Стикеры GBF в Telegram
In reply to Ment
User Avatar
#1061
Auto-translated
Ment
Hmm, but this algorithm seems to work:
bit1=xor(i1,i2)
bit2=xor(i1,i3)
bit3=xor(i1,i4)
bit4=xor(i2,i3)
bit5=xor(i2,i4)
bit6=i2
bit7=i1

Oops, I made a mistake; I had a reverse XOR in the checks. I was wrong. That is, 1 when the operands are the same. But never mind, it also passes the check with a normal XOR. They work symmetrically.
Yes. The error is detected, but again, I can quote what I wrote to Uranus.
Hermit

According to your algorithm, the combination 0000 is encoded as the message 0000000,
and the combination 1111 is encoded as the message 0000011.
But let's say we received the combination 0000010 :(
Yes, it's clear that one bit, or even more, has been corrupted – the sixth or seventh bit. But how do we know whether we transmitted 0000 and corrupted the sixth bit from 0 to 1, or 1111 and corrupted the seventh bit from 1 to 0???
This also applies to your algorithm.
So far, Uranus has proposed the best option.
Всё не так плохо как Вы думаете. Всё намного хуже!
User Avatar
#1063
Auto-translated
I'm starting to doubt whether this problem can be solved using XORs.
Perhaps the answer involves some kind of trick, like: if the first character is 0, then only transmit six bits (and who said there must be seven?).
In any case, I suggest thinking about this direction as well.
..разым двазым трызым рызым пята лата сигерь мата локом боком крюк за крюк из бульмы бульма урюк..
Знание некоторых закономерностей освобождает от изучения многих фактов.
Мечты сбываются рано или поздно, так или иначе.
In reply to Sesame
User Avatar
#1064
Auto-translated
Sesame

Perhaps the issue lies in some kind of trick related to: if the first character is 0, then only six bits are transmitted (but who said there must be 7?).
In general, I suggest considering this direction as well.

No, all 7 bits are transmitted!

Added after 33 seconds
They must be 7!
Всё не так плохо как Вы думаете. Всё намного хуже!
User Avatar
#1065
Auto-translated
But what if we lose some information with XOR operations? What if we introduce something else? And, for example, works completely differently (and if there is an AND, then OR is no longer needed).
Or do we really need to pass these unfortunate i1, i2, i3, i4 to avoid loss, and then do XOR(i1, i2), XOR(i1, i3), XOR(i1, i4)?
That results in three XOR operations. Although, I still see that it doesn't work; we can come up with an example. Sigh.
 

К А
Стикеры GBF в Telegram
User Avatar
#1066
Auto-translated
XOR seems to provide more information than AND or OR, but I don't have any other ideas. I also remembered that you can XOR more than two bits, but it didn't help me personally.
..разым двазым трызым рызым пята лата сигерь мата локом боком крюк за крюк из бульмы бульма урюк..
Знание некоторых закономерностей освобождает от изучения многих фактов.
Мечты сбываются рано или поздно, так или иначе.