ﺑﺴﻤﻪ ﺗﻌﺎﻟﻲ ﻣﺤﺎﺳﺒﺔ ﺷﻜﻞ ﻧﺮﻣﺎل ﺟﺒﺮي ) (Algebraic Normal Formﺗﻮاﺑﻊ ﺑﻮﻟﻲ --ﻣﺤﻤﺪ ﺻﺎدق دوﺳﺘﻲ ﻣﻲﺗﻮان اﺛﺒﺎت ﻛﺮد ﻛﻪ ﻫﺮ ﺗﺎﺑﻊ ﺑﻮﻟﻲ را ﻣﻲﺷﻮد ﻓﻘﻂ ﺑﺎ اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮﻫﺎي ﺑﻮﻟﻲ XORو ANDﭘﻴﺎدهﺳﺎزي ﻛﺮد. اﻳﻦ ﻧﺤﻮة ﻧﻤﺎﻳﺶ ﺗﺎﺑﻊ »ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮي« ) (ANFﻧﺎم دارد .در اﻳﻦ ﻣﻘﺎﻟﻪ روﺷﻲ constructiveﺑﺮاي اﺛﺒﺎت اﻳﻦ ﻗﻀﻴﻪ ﭘﻴﺪا ﻛﻨﻴﻢ ،و ﺑﻪ ﻛﻤﻚ آن ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﻢ ﻛﻪ ﺑﺎ داﺷﺘﻦ ﺟﺪول درﺳﺘﻲ ) (Truth Tableﺗﺎﺑﻊ ANF ،آن را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟﻲ ﭼﺎپ ﻛﻨﺪ. .1ﻣﺒﺎﻧﻲ ﺗﺌﻮري ﻓﺮض ﻛﻨﻴﺪ ﺗﺎﺑﻊ ﺑﻮﻟﻲ nﻣﺘﻐﻴﺮة fداده ﺷﺪه اﺳﺖ ANF .اﻳﻦ ﺗﺎﺑﻊ ﺑﻪ ﻓﺮم زﻳﺮ اﺳﺖ: = ) f ( xn −1,… , x0 a0 ⊕∑ ai xi ⊕∑ ai j xi x j ⊕ ⊕ a2n −1 xn −1 … x0 ﺑﺮاي ﺳﺎدﮔﻲ ﻛﺎر ﻻزم اﺳﺖ ﻗﺮاردادي ﺑﺮاي ﻧﺤﻮة ﻧﻤﺎﻳﺶ اﻧﺪﻳﺲ ﺿﺮاﻳﺐ ﻳﻚ ﺟﻤﻠﺔ ﺧﺎص وﺿﻊ ﻛﻨﻴﻢ .ﻣﺜﻼً ،ﻓﺮض ﻛﻨﻴﺪ n = 6ﺑﻮده و ﻣﻲﺧﻮاﻫﻴﻢ اﻧﺪﻳﺲ ) aiﻳﻌﻨﻲ (iرا ﻛﻪ ﺿﺮﻳﺐ ﺟﻤﻠﺔ x5 x4 x2 x0اﺳﺖ را ﻣﺸﺨﺺ ﻛﻨﻴﻢ .ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر ﻛﺎﻓﻴﺴﺖ ﺟﻤﻠﻪ را ﻳﻚ ﻋﺪد ﺑﺎﻳﻨﺮي در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ؛ ﻣﺜﻼً در اﻳﻨﺠﺎ ﻋﺪد ﺑﺎﻳﻨﺮي ﻣﻔﺮوض ﻋﺪد (110101)2 = 53 اﺳﺖ )ﻣﺸﺎﻫﺪه ﻣﻲﻛﻨﻴﺪ ﻛﻪ در ﻣﻮﻗﻌﻴﺖ ،2 ،4 ،5و ﺻﻔﺮ آن ﻣﻘﺪار 1و در ﻣﻮﻗﻌﻴﺘﻬﺎي دﻳﮕﺮ ﻋﺪد 0ﻗﺮار داده ﺷﺪه اﺳﺖ( .ﻧﺘﻴﺠﺘﺎً ﺿﺮﻳﺐ ﺟﻤﻠﺔ x5 x4 x2 x0ﺑﺮاﺑﺮ a53ﺧﻮاﻫﺪ ﺑﻮد .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎﻟﻲ دﻳﮕﺮ ،ﺿﺮاﻳﺐ ﻳﻚ ﺗﺎﺑﻊ ﺳﻪ ﻣﺘﻐﻴﺮه ﻧﺸﺎن داده ﺷﺪهاﻧﺪ: f ( x2 , x1, x0 ) = a0 ⊕ a1x0 ⊕ a2 x1 ⊕ a4 x2 ⊕ a3 x1x0 ⊕ a5 x2 x0 ⊕ a6 x2 x1 ⊕ a7 x2 x1x0 در اداﻣﻪ از ﻫﻤﻴﻦ ﻣﺜﺎل اﺳﺘﻔﺎده ﻛﺮده ﺗﺎ از ﺟﺪول درﺳﺘﻲ ﺑﻪ ﺿﺮاﻳﺐ ANFﺗﺎﺑﻊ ﺑﺮﺳﻴﻢ. ) f (0,0,0را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .اﻳﻦ ﻣﻘﺪار ﺑﺎ ﺗﻮﺟﻪ ﻧﻤﺎش ﻓﻮق ﺑﺮاي ANFﺗﺎﺑﻊ ﺳﻪ ﻣﺘﻐﻴﺮه ﺑﺮاﺑﺮ a0اﺳﺖ .ﺑﻨﺎﺑﺮاﻳﻦ ﻣﻘﺪار a0را ﺑﻪ ﺳﺎدﮔﻲ ﻣﻲﺗﻮان ﻳﺎﻓﺖ .ﺑﻪ ﻫﻤﻴﻦ ﺗﺮﺗﻴﺐ ) f (0,0,1ﺑﺮاﺑﺮ a0 ⊕ a1اﺳﺖ ﻛﻪ ﭼﻮن a0را از ﮔﺎم ﻗﺒﻠﻲ دارﻳﻢ ،ﻣﻘﺪار a1ﻧﻴﺰ ﺑﻪ ﺳﺎدﮔﻲ ﺑﺪﺳﺖ ﻣﻲآﻳﺪ .ﭘﺲ دارﻳﻢ: )a0 = f (0,0,0 )a1 = f (0,0,0) ⊕ f (0,0,1 )a2 = f (0,0,0) ⊕ f (0,1,0 )a4 = f (0,0,0) ⊕ f (1,0,0 )a3 = f (0,0,0) ⊕ f (0,0,1) ⊕ f (0,1,0) ⊕ f (0,1,1 )a5 = f (0,0,0) ⊕ f (0,0,1) ⊕ f (1,0,0) ⊕ f (1,0,1 )a6 = f (0,0,0) ⊕ f (0,1,0) ⊕ f (1,0,0) ⊕ f (1,1,0 )a7 = f (0,0,0) ⊕ f (0,0,1) ⊕ f (0,1,0) ⊕ f (0,1,1) ⊕ f (1,0,0) ⊕ f (1,0,1) ⊕ f (1,1,0) ⊕ f (1,1,1 ﺑﻪ ﻃﻮر ﻛﻠﻲ ،ﺑﺮاي ﺗﺎﺑﻊ ﺑﻮﻟﻲ nﻣﺘﻐﻴﺮة ) f ( xn −1,… , x0ﻣﻲﺗﻮان ﻧﻮﺷﺖ: )) ( f (k XOR k=different on-off states of i's bits = ai ﻣﻨﻈﻮر از on-off stateآن اﺳﺖ ﻛﻪ ﺣﺎﻟﺘﻬﺎي ﻣﺨﺘﻠﻔﻲ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻢ ﻛﻪ ﻫﺮﻛﺪام از ﺑﻴﺘﻬﺎي iرا ﻛﻪ 1ﻫﺴﺘﻨﺪ ﻳﻜﺒﺎر 1و ﻳﻜﺒﺎر ﺻﻔﺮ ﻛﻨﺪ .ﻣﺜﻼً: )On-Off states of (101)2 = (000), (001), (100), (101 ﺣﺎل ﺑﺎ داﺷﺘﻦ اﻳﻦ ﻓﺮﻣﻮل ﺑﻪ ﺳﺎدﮔﻲ ﻣﻲﺗﻮان ﺑﺮﻧﺎﻣﻪاي ﻧﻮﺷﺖ ﻛﻪ ﺿﺮاﻳﺐ ANFرا ﻣﺤﺎﺳﺒﻪ ﻛﻨﺪ. .2ﺧﻄﻲ ﺑﻮدن ﻣﻲداﻧﻴﻢ ﺗﺎﺑﻊ fﺧﻄﻲ اﺳﺖ اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ ﺷﺮاﻳﻂ زﻳﺮ را ارﺿﺎ ﻛﻨﺪ: )f (x,y) = f(x)+f(y )f (ax) = a f(x ﻓﺮض ﻛﻨﻴﺪ ﺗﺎﺑﻊ fﻳﻚ ﺗﺎﺑﻊ ﺑﻮﻟﻲ ﺑﺎﺷﺪ ﻛﻪ ﺑﻪ ﻓﺮم ﻧﺮﻣﺎل ﺟﺒﺮي ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ .ﺑﺎ ﺗﻮﺟﻪ ﺑﺎ ﺷﺮاﻳﻂ ﻓﻮق ﻣﻲﺗﻮان اﺛﺒﺎت ﻛﺮد ﻛﻪ fﺧﻄﻲ اﺳﺖ اﮔﺮ و ﺗﻨﻬﺎ اﮔﺮ در آن ﺟﻤﻠﺔ ﻣﺨﺘﻠﻂ )ﺟﻤﻠﻪاي ﻛﻪ ﺣﺎﺻﻠﻀﺮب ﺑﻴﺶ از ﻳﻚ xiاﺳﺖ( ﻇﺎﻫﺮ ﻧﺸﺪه ﺑﺎﺷﺪ .در ﻣﺜﺎل زﻳﺮ f1 ،و f2ﺧﻄﻲ و f 3ﻏﻴﺮ ﺧﻄﻲ اﺳﺖ. f1 = 1 f2 = x0 ⊕ x1 ⊕ x6 f 3 = x0 ⊕ x1 ⊕ x0 x2 x3 ⊕ x5 x6 ﺑﻨﺎ ﺑﻪ ﺗﻌﺮﻳﻒ ،ﺣﺎﺻﻠﻀﺮب mﻣﺘﻐﻴﺮ ﻣﺘﻤﺎﻳﺰ ،ﺣﺎﺻﻠﻀﺮب ﻣﺮﺗﺒﺔ mام ) (mth-order productﻧﺎﻣﻴﺪه ﻣﻲﺷﻮد .ﺑﻨﺎﺑﺮاﻳﻦ: The ANF of an n-variable function f (x0,x1,…,xn-1) can be thought of as a modulo-2 sum (XOR) of distinct mth-order products of its variables, 0 ≤ m ≤ n. درﺟﺔ ﻏﻴﺮ ﺧﻄﻲ ﺑﻮدن ﻳﻚ ﺗﺎﺑﻊ ﺑﻮﻟﻲ ،ﻣﺎﻛﺰﻳﻤﻢ ﻣﺮﺗﺒﺔ ﺟﻤﻼت ANFآن ﺗﺎﺑﻊ اﺳﺖ .در ﻣﺜﺎل ﻓﻮق ،درﺟﺔ ﻏﻴﺮ ﺧﻄﻲ f1ﺻﻔﺮ f2 ،ﻳﻚ ،و f 3ﺳﻪ اﺳﺖ. .3ﺑﺮﻧﺎﻣﻪ ﺑﺮﻧﺎﻣﺔ ) ANF.csﺑﺨﺶ resourcesﺻﻔﺤﺔ ﺧﺎﻧﮕﻲ درس( ﺟﺪول درﺳﺘﻲ ﺗﺎﺑﻊ را ﮔﺮﻓﺘﻪ و ﺧﺮوﺟﻲ را ﻛﻪ ANFﺗﺎﺑﻊ اﺳﺖ ﻧﺸﺎن ﻣﻲدﻫﺪ .اﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺑﻪ زﺑﺎن C# 2.0ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ. .4ﻧﻤﻮﻧﻪ اﺟﺮا در اﻳﻨﺠﺎ ﻧﺘﻴﺠﺔ ﺧﺮوﺟﻲ ﺑﺮﻧﺎﻣﻪ ﻳﻜﺒﺎر ﺑﺮاي ﻳﻚ ﺗﺎﺑﻊ ﻓﺮﺿﻲ ﭼﻬﺎر ﻣﺘﻐﻴﺮه و ﻳﻜﺒﺎر ﺑﺮاي ﻳﻚ ﺗﺎﺑﻊ ﻓﺮﺿﻲ ﺷﺶ ﻣﺘﻐﻴﺮه ﻧﺸﺎن داده ﺷﺪه اﺳﺖ: ﺗﺎﺑﻊ ﭼﻬﺎر ﻣﺘﻐﻴﺮه What's number of variables? 6 Enter the truth table for the function: f(1,0,0,0)=1 f(1,0,0,1)=1 f(1,0,1,0)=0 f(1,0,1,1)=1 f(1,1,0,0)=0 f(1,1,0,1)=0 f(1,1,1,0)=0 f(1,1,1,1)=0 f(0,0,0,0)=1 f(0,0,0,1)=0 f(0,0,1,0)=1 f(0,0,1,1)=1 f(0,1,0,0)=0 f(0,1,0,1)=0 f(0,1,1,0)=1 f(0,1,1,1)=0 ﻧﺘﻴﺠﻪ: Function=1 +x0+x2 +x1x0+x2x0+x2x1+x3x0+x3x1 +x3x2x0 ﻓﺮم ﺧﻮاﻧﺎﺗﺮ ﻧﺘﻴﺠﻪ: 1 85-86 ﻧﻴﻤﺴﺎل اول 85/08/1 :ﺗﺎرﻳﺦ ﺗﺤﻮﻳﻞ 2 ﺗﻤﺮﻳﻦ 85208015 :ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ رﻣﺰﻧﮕﺎري ﻣﺤﻤﺪ ﺻﺎدق دوﺳﺘﻲ:ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔﻲ ⊕ x0 ⊕ x2 ⊕ x1x0 ⊕ x2x0 ⊕ x2x1 ⊕ x3x0 ⊕ x3x1 ⊕ x3x2x0 ﺗﺎﺑﻊ ﭼﻬﺎر ﻣﺘﻐﻴﺮه What's number of variables? 6 Enter the truth table for the function: f(0,0,0,0,0,0)=0 f(0,0,0,0,0,1)=0 f(0,0,0,0,1,0)=0 f(0,0,0,0,1,1)=0 f(0,0,0,1,0,0)=1 f(0,0,0,1,0,1)=1 f(0,0,0,1,1,0)=1 f(0,0,0,1,1,1)=1 f(0,0,1,0,0,0)=0 f(0,0,1,0,0,1)=0 f(0,0,1,0,1,0)=0 f(0,0,1,0,1,1)=0 f(0,0,1,1,0,0)=0 f(0,0,1,1,0,1)=0 f(0,0,1,1,1,0)=0 f(0,0,1,1,1,1)=0 f(0,1,0,0,0,0)=1 f(0,1,0,0,0,1)=0 f(0,1,0,0,1,0)=0 f(0,1,0,0,1,1)=0 f(0,1,0,1,0,0)=0 f(0,1,0,1,0,1)=0 f(0,1,0,1,1,0)=0 f(0,1,0,1,1,1)=0 f(0,1,1,0,0,0)=0 f(0,1,1,0,0,1)=1 f(0,1,1,0,1,0)=1 f(0,1,1,0,1,1)=1 f(0,1,1,1,0,0)=1 f(0,1,1,1,0,1)=1 f(0,1,1,1,1,0)=1 f(0,1,1,1,1,1)=1 f(1,0,0,0,0,0)=0 f(1,0,0,0,0,1)=1 f(1,0,0,0,1,0)=0 f(1,0,0,0,1,1)=1 f(1,0,0,1,0,0)=0 f(1,0,0,1,0,1)=1 f(1,0,0,1,1,0)=1 f(1,0,0,1,1,1)=1 f(1,0,1,0,0,0)=1 f(1,0,1,0,0,1)=0 f(1,0,1,0,1,0)=0 f(1,0,1,0,1,1)=0 f(1,0,1,1,0,0)=0 f(1,0,1,1,0,1)=1 f(1,0,1,1,1,0)=1 f(1,0,1,1,1,1)=0 f(1,1,0,0,0,0)=1 f(1,1,0,0,0,1)=0 f(1,1,0,0,1,0)=1 f(1,1,0,0,1,1)=1 f(1,1,0,1,0,0)=0 f(1,1,0,1,0,1)=1 f(1,1,0,1,1,0)=0 f(1,1,0,1,1,1)=1 f(1,1,1,0,0,0)=0 f(1,1,1,0,0,1)=1 f(1,1,1,0,1,0)=0 f(1,1,1,0,1,1)=1 f(1,1,1,1,0,0)=0 f(1,1,1,1,0,1)=0 f(1,1,1,1,1,0)=0 f(1,1,1,1,1,1)=0 :ﻧﺘﻴﺠﻪ Function=x2+x4 85-86 ﻧﻴﻤﺴﺎل اول 85/08/1 :ﺗﺎرﻳﺦ ﺗﺤﻮﻳﻞ 2 ﺗﻤﺮﻳﻦ 85208015 :ﺷﻤﺎره داﻧﺸﺠﻮﻳﻲ رﻣﺰﻧﮕﺎري ﻣﺤﻤﺪ ﺻﺎدق دوﺳﺘﻲ:ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔﻲ +x3x2+x4x0+x4x1+x4x3+x5x0+x5x2+x5x3 +x4x1x0+x4x2x0+x4x2x1+x4x3x2+x5x2x1+x5x3x1+x5x4x0+x5x4x1+x5x4x2+x5x4x3 +x4x2x1x0+x5x2x1x0+x5x3x1x0+x5x3x2x1+x5x4x2x0+x5x4x3x1+x5x4x3x2 +x5x4x2x1x0+x5x4x3x2x0+x5x4x3x2x1 +x5x4x3x2x1x0 :ﻓﺮم ﺧﻮاﻧﺎﺗﺮ ﻧﺘﻴﺠﻪ x2 ⊕ x4 ⊕ x3x2 ⊕ x4x0 ⊕ x4x1 ⊕ x4x3 ⊕ x5x0 ⊕ x5x2 ⊕ x5x3 ⊕ x4x1x0 ⊕ x4x2x0 ⊕ x4x2x1 ⊕ x4x3x2 ⊕ x5x2x1 ⊕ x5x3x1 ⊕ x5x4x0 ⊕ x5x4x1 ⊕ x5x4x2 ⊕ x5x4x3 ⊕ x4x2x1x0 ⊕ x5x2x1x0 ⊕ x5x3x1x0 ⊕ x5x3x2x1 ⊕ x5x4x2x0 ⊕ x5x4x3x1 ⊕ x5x4x3x2 ⊕ x5x4x2x1x0 ⊕ x5x4x3x2x0 ⊕ x5x4x3x2x1 ⊕ x5x4x3x2x1x0
© Copyright 2025 Paperzz