Ну, ответ почти всегда 2^(N-10)
Во-первых, обратите внимание, что если вы XOR один элемент в другой, он не изменяет число подмножеств, XOR к Q.
Доказательство этого: Предположим, что у вас есть массив A размера N и множество подмножеств, которые XOR соответствуют определенным значениям. Тогда вы выполняете A [i]^= A [j], причем i! = J. Теперь, чтобы исправить все подмножества так, чтобы они были XOR одинаковыми значениями, вы просто найдете те, которые включают A [i], и переключите A [j] в них. Таким образом, XOR, который мы сделали, не влияет на общее количество подмножеств XOR на какое-либо конкретное значение.
Итак ...
Найти наибольший элемент и переместить его в положение 0. Тогда XOR его во все другие элементы, которые имеют тот же самый старший бит (самый старший бит), так что A [0 ] является единственным элементом с наибольшим MSB.
Найти самый большой оставшийся элемент, переместив его в положение 1 и XOR его во все остальные элементы с тем же MSB, поэтому A [1] будет единственным элементом со вторым по величине MSB.
Продолжайте работу с 3-м по величине MSB и т. Д. Столько раз, сколько сможете. В итоге вы получите не более 10 ненулевых элементов, все с разными MSB, а остальные элементы будут равны нулю.
Допустим, вы закончили с М ненулевыми элементами. Если вы можете сделать Q путем XORing этих элементов вместе, тогда будет только один способ сделать это. Остальные элементы N-M равны нулю, поэтому вы можете добавлять или удалять их из любого подмножества без изменения общего значения XOR. Итак, если вы можете сделать Q, тогда будут 2^(NM) подмножества, которые XOR - Q.
Если вы не можете сделать Q путем XORing ненулевых элементов, то, конечно, число подмножеств, которые XOR равно Q 0.
для получения дополнительной информации об этой процедуре, Google «Гаусса»
ли подмножества должны быть определенного размера? Они сделаны из смежных элементов в массиве? – m69
Итак, у вас есть 'F', который представляет собой массив случайных чисел от 0 до 1,023. У вас есть «Q», которое является случайным числом в том же диапазоне. Вы хотите знать, сколько разных x, y комбинаций, включенных в 'F [x]^F [y]', может быть равно 'Q'? например: если 'F = [0,1,1,2,2,2,3,3,3,3]' и 'Q = 3', то' ways' должно быть 10? (1 * 4 + 2 * 3) – dtudury
Подмножество m69 может быть любого размера '2^n' подмножества возможны – Sunny