用位運算解題

2021-10-17 03:18:19 字數 1554 閱讀 6597

1-1000這1000個數放在含有1001個元素的陣列中,只有唯一個元素重複,其他均只出現一次。每個陣列元素,只能訪問一次,設計乙個演算法,將其找出來,不用輔助儲存空間,能否設計乙個算發實現

位運算解題

import random

a =[

]n =

1001

for i in

range

(n-1):

1)print

(a)b = random.randint(

0,n-2)

a.insert(a[b]

,random.randint(

1,n-1)

)print

(a)x1 =

0for i in

range

(n):

x1 = x1^i

for i in

range

(n):

x1 = x1^a[i]

print

(x1)

驗證方法,用輔助儲存空間

import random

a =[

]n =

1001

for i in

range

(n-1):

1)print

(a)b = random.randint(

0,n-2)

a.insert(a[b]

,random.randint(

1,n-1)

)print

(a)print

("********************="

)a1 =

for i in

range

(n):0)

# 建立乙個長度為n 的陣列,所有的值都為0

for i in

range

(n):

a1[a[i]]+=

1# 遍歷陣列a 陣列[i]的值對應陣列a1的位置,將該位置的值加1

for i in

range

(n):

if a1[i]==2

:print

(i)break

乙個陣列裡除了某乙個數字之外,其他的數字都出現了兩次,請寫乙個程式找出這個數隻出現一次的數字

# 兩個相同的數做位運算結果為0

import random

n =10

a =[

]for i in

range

(n):1)

1)b = random.randint(1,

2*n-1)

a.pop(b)

print

(a)x =

0for i in a:

x = x^i

print

(x)

用Lua實現位運算

由於做禮包啟用碼的時候需要對啟用碼進行一些位運算,所以就寫了這個模組。一般這些位運算操作建議還是在c 裡面寫,由於遊戲已經發出去了,只想用自動更新來更新這個功能,所以逼於無奈只能先用lua來實現一下。如果有朋友也是遇到不方便更新c 只想用lua來實現的話,希望這裡可以幫到你。module commo...

用位運算實現除法

複習一下 被除數 除數 商.餘數累減 最簡單的就是不斷地用被除數減去除數,直到被除數小於除數,此時減的次數就是商 加權累減 假設現在要計算a b,a為a位的二進位制數,b為b位的二進位制數 1 將b左移a b位,變成乙個a位的二進位制數b 與a的位數一樣 2 如果a大於等於b 則令a a b 商累加...

用位運算實現四則運算

1 這個 主要用位運算實現四則運算 2 public class figureout 1314 加法的實現 15public static int add int a,int b else33 34 減法的實現 35public static int minus int a,int b 44 乘法的...