หมายเลขไบนารีที่ซับซ้อน


36

ลองสร้างการแม็พแบบง่าย ๆ ที่ครอบคลุมจากจำนวนเต็มบวกกับจำนวนเต็มแบบเกาส์ซึ่งเป็นจำนวนเชิงซ้อนที่ส่วนจริงและจินตภาพเป็นจำนวนเต็ม

ตัวอย่างเช่นกำหนดจำนวนเต็มบวกให้4538แสดงเป็นเลขฐานสองโดยไม่มีส่วนนำ0ของ:

4538 base 10 = 1000110111010 base 2

ลบการติดตามใด ๆ0:

100011011101

แทนที่การวิ่งอย่างน้อยหนึ่งครั้งด้วยการวิ่ง0ครั้งเดียว+:

1+11+111+1

แทนที่ทั้งหมด1ด้วยi's:

i+ii+iii+i

ประเมินการแสดงออกที่ซับซ้อนที่เกิดขึ้นและส่งออกจำนวนเต็ม Gaussian ที่ง่ายขึ้น:

i+ii+iii+i = i+i*i+i*i*i+i = 2i+i^2+i^3 = 2i+(-1)+(-i) = -1+i

เอาต์พุตสามารถแสดงในรูปแบบทางคณิตศาสตร์แบบดั้งเดิมหรือกำหนดเป็นจำนวนเต็มสองจำนวนแยกกันสำหรับชิ้นส่วนจริงและซับซ้อน สำหรับ4538ตัวอย่างสิ่งเหล่านี้จะใช้ได้:

-1+i
i-1
-1+1i
(-1, 1)
-1 1
-1\n1

สำหรับปัจจัยการผลิตที่ชอบ29, เอาท์พุทจัดรูปแบบ Mathy เช่น0, 0iหรือ0+0iจะมีการปรับทั้งหมด

การใช้j(หรืออย่างอื่น) แทนiก็ใช้ได้ถ้ามันเป็นเรื่องธรรมดาสำหรับภาษาของคุณ

รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ


จากชื่อเรื่องฉันคิดว่าความท้าทายจะเกี่ยวกับตัวเลขที่ซับซ้อนในรูปแบบไบนารีเช่น4+2j-> 100+10j...
Erik the Outgolfer

คำตอบ:


22

MATL , 7 ไบต์

BJ*Y'^s

ลองออนไลน์!

มันทำงานอย่างไร

พิจารณาการป้อนข้อมูล4538เช่น

B     % Implicit input. Convert to binary
      % STACK: [1 0 0 0 1 1 0 1 1 1 0 1 0]
J*    % Multiply by 1i
      % STACK: [1i 0 0 0 1i 1i 0 1i 1i 1i 0 1i 0]
Y'    % Run-length encoding
      % STACK: [1i 0 1i 0 1i 0 1i 0], [1 3 2 1 3 1 1 1]
^     % Power, element-wise
      % STACK: [1i 0 -1 0 -1i 0 1i 0]
s     % Sum of array. Implicit display
      % STACK: -1+1i

2
7 bytes ใน MATL และที่ดีที่สุดที่ฉันจะได้คือ58 ใน MATLAB ... คุณใช้ภาษาเล็ก ๆ น้อย ๆ ที่นั่น! =)
Stewie Griffin

1
@StewieGriffin อย่างดีที่สุดในการแสดงเมื่อมันมาถึงกราฟหรือพล็อตบางทีสำหรับเมทริกซ์เลขคณิตเช่นกันจากคำตอบที่ยอดเยี่ยมที่ฉันเคยเห็นเขาโพสต์
Magic Octopus Urn

13

เยลลี่ขนาด 8 ไบต์

BŒgaıP€S

ลองออนไลน์!

มันทำงานอย่างไร

BŒgaıP€S  Main link. Argument: n (integer)

B         Convert to binary.
          If n = 4538, this yields [1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0].
 Œg       Group equal elements.
          This yields [[1], [0, 0, 0], [1, 1], [0], [1, 1, 1], [0], [1], [0]].
   aı     Logical AND with the imaginary unit.
          This yields [[ı], [0, 0, 0], [ı, ı], [0], [ı, ı, ı], [0], [ı], [0]].
     P€   Product each.
          This yields [ı, 0, -1, 0, -ı, 0, ı, 0].
       S  Sum.
          This yields -1+ı.

10

Python 2, 53 ไบต์

f=lambda n,k=0:(n and f(n/2,n%2*(k or 1)*1j))+~n%2*k

รับการพยายามที่จะเล่นกอล์ฟนี้และดูเหมือนว่าเล่นได้ แต่ฉันไม่ได้คิด ...


1
นั่น(k or 1)ดูไม่เหมาะสม แต่สิ่งเดียวที่ฉันคิดได้คือ(k+0**k)...
ETHproductions

@ETHproductions ความคิดของฉันถูกต้อง แต่น่าเสียดายที่0**kมันใช้ไม่ได้กับความซับซ้อนk...
Sp3000

6

Mathematica, 44 38 ไบต์

Tr[1##&@@@Split[I*#~IntegerDigits~2]]&

คำอธิบาย

#~IntegerDigits~2

แปลงอินพุตเป็นฐาน 2 ( 4538กลายเป็น{1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0})

I*

ทวีคูณโดยI( {1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0}กลายเป็น{I, 0, 0, 0, I, I, 0, I, I, I, 0, I, 0})

Split

แยกโดยวิ่ง ( {I, 0, 0, 0, I, I, 0, I, I, I, 0, I, 0}กลายเป็น{{I}, {0, 0, 0}, {I, I}, {0}, {I, I, I}, {0}, {I}, {0}})

1##&@@@ ...

ค้นหาผลิตภัณฑ์ที่ระดับ 2 ( {{I}, {0, 0, 0}, {I, I}, {0}, {I, I, I}, {0}, {I}, {0}}กลายเป็น{I, 0, -1, 0, -I, 0, I, 0})

Tr

สรุปผล ( {I, 0, -1, 0, -I, 0, I, 0}กลายเป็น-1 + I)


ลบ 1 ไบต์:Tr[Times@@@(I*Split@RealDigits[#,2][[1]])]&
มาร์ติน

1
@ Smartin ดีฉันใช้ความคิดของคุณในการคูณIก่อน แต่IntegerDigitsท้ายที่สุดก็สั้นลง
JungHwan Min

ใช่ - ดีกว่า :)
martin


5

JavaScript (ES6), 67 64 ไบต์

f=(n,q=0,a=[0,0])=>q|n?f(n/2,n&1?q+1:q&&0*(a[q&1]+=1-(q&2)),a):a
<input oninput="O.innerHTML=f(this.value)" type="number" step=1 min=0 value="4538">
<pre id=O></pre>

เอาต์พุตเป็นอาร์เรย์ 2 องค์ประกอบ

คำอธิบาย

เนื่องจาก JavaScript ไม่มีตัวเลขในจินตนาการเราจึงต้องติดตามส่วนจริงและจินตภาพในตัวแปรแยกต่างหาก วิธีที่ง่ายที่สุดในการทำเช่นนี้คือในอาเรย์เดี่ยวโดยมีส่วนจริงก่อน iถูกแทนด้วย[0,1] , i 2 (หรือ-1 ) เป็น[-1,0] , i 3 (หรือ-i ) เป็น[0, -1]และi 4 (หรือ1 ) เป็น[1 , 0] .

ก่อนอื่นเราหารตัวเลขด้วย 2 ซ้ำ ๆ กันเพื่อรวบรวมจำนวนรันของแต่ละรายการในรูปแบบเลขฐานสอง การทำงานของแต่ละnคนที่สอดคล้องกับฉัน n สิ่งนี้สอดคล้องกับการเพิ่ม1 - (n & 2)ไปยังรายการที่ดัชนีn & 1ในอาร์เรย์สองรายการ นั่นคือสิ่งที่เราทำ

ฉันอาจจะเพิ่มคำอธิบายเพิ่มเติม แต่ฉันไม่สามารถคิดได้ว่าจะต้องอธิบายอะไรอีก รู้สึกอิสระที่จะแสดงความคิดเห็นกับคำถามใด ๆ ที่คุณอาจมี


5

Python, 199 129 124 116 94 90 71 63 61 ไบต์

print sum(1j**len(s)for s in bin(input())[2:].split('0')if s)

อินพุตเป็นเพียงตัวเลขเท่านั้น
เอาต์พุตอยู่ในรูปแบบ(a+bj)โดยที่jเป็นหน่วยจินตภาพ 0jจะถูกส่งออกแทน(0+0j)

ก่อนอื่นแปลงเป็นไบนารี่ ตัด'0b'ออก ฆ่าเลขศูนย์ต่อท้าย แบ่งโดยใช้บล็อกที่มีศูนย์เป็นตัวคั่น 1j ** lenแผนที่แต่ละบล็อกจะ จากนั้นนำผลรวมของทุกสิ่งมารวมกัน

-70 ไบต์โดยไม่แปลงเป็น pluses
-5 ไบต์ regex สั้นกว่า
-8 ไบต์โดยกำจัดตัวแปรที่ไม่จำเป็นสองตัวที่ถูกเรียกเพียงครั้งเดียว
-22 ไบต์โดยใช้ตัวเลขที่ซับซ้อนแทนสิ่งประหลาดของฉัน ขอบคุณ @Dennis 'คำตอบสำหรับแจ้งหมายเลขที่ซับซ้อนให้ฉัน!
-4 bytesโดยตระหนักว่าmapเป็นเพียงวิธีแฟนซีในการทำรายการความเข้าใจยกเว้นอีกต่อไป
-19 ไบต์โดยสลับไปใช้วิธีการลับเล็กน้อยในการหลีกเลี่ยงข้อผิดพลาดด้วยj ** 0และหลีกเลี่ยง regex แรงบันดาลใจจากความคิดเห็นของ @ Griffin ขอบคุณ! :)
-8 ไบต์โดยการย้ายifส่วนไปยังจุดสิ้นสุด
-2 ไบต์ ขอบคุณ @Griffin สำหรับการบันทึก 2 ไบต์โดยการลบวงเล็บเหลี่ยมออกเพื่อให้เป็นนิพจน์ตัวสร้างแทน!


ฉันมีบางอย่างที่คล้ายกันดังนั้นจะไม่โพสต์คำตอบแยกกันสั้นลงเล็กน้อยsum(1j**x.count('1')for x in bin(input()).split('0')if x)
กริฟฟิน

@Griffin Nice ฉันคิดว่ามันแตกต่างกันมากพอที่คุณจะโพสต์คำตอบแยกต่างหากได้เนื่องจากใช้วิธีการนับจำนวน1บล็อกที่แตกต่างกันและไม่ใช้ regex เหมือนของฉัน นอกจากนี้ฉันไม่ต้องการขโมยรหัสจากคุณเพราะมันดีกว่ารุ่นของฉันมาก :)
HyperNeutrino

@Griffin ฉันพบวิธีแก้ไขปัญหาอื่นที่มีความยาวเท่ากันกับโซลูชันของคุณยกเว้นการนับ1s แทนความยาวมันต้อง0xถอดชิ้นส่วนด้านหน้าออกก่อน ขอบคุณสำหรับแนวคิดของการย้ายifไปยังจุดสิ้นสุด ฉันไม่เคยรู้จักที่ทำงานอย่างอื่น!
HyperNeutrino

คุณไม่ต้องการความเข้าใจในรายการ ลบวงเล็บเหลี่ยมออกเพื่อให้เป็นนิพจน์ตัวสร้าง
Griffin

@Griffin โอ้ โอเคขอบคุณ! ฉันจะจำได้ว่าสำหรับการเล่นกอล์ฟในอนาคต
HyperNeutrino

4

MATLAB, 58 ไบต์

@(x)eval([strrep(strrep(dec2bin(x),48,43),49,'i*1'),'.0'])

dec2bin(x) % converts the decimal value to a binary string of 1s and 0s.
strrep(dec2bin(x),48,43) % Substitutes ASCII character 48 with 43 (0s become +)
strrep(___,49,'i*1')     % Substitutes ASCII character 49 with 'i*1'
                         % 1s become 'i*1' (this is the gem)
eval([___,'.0']          % Appends .0 in the end and evaluates the expression.   

มาใช้285เพื่ออธิบายกระบวนการ:

temp1 = dec2bin(285)
      = 100011101

temp2 = strrep(temp1,48,43)
      = 1+++111+1

โชคดีที่1+++1มีลักษณะการทำงานเช่นเดียวกับ1+1ใน MATLAB 1+111+1เพื่อประเมินข้างต้นเพื่อ:

temp3 = strrep(temp2,49,'i*1')
      = i*1+++i*1i*1i*1+i*1

ทีนี้คอลนี้strrepเป็นอัญมณีจริง! โดยการใส่i*1เพื่อให้1เราได้สิ่งที่ดีจริงๆ ถ้ามีเพียงหนึ่ง1เราก็จะได้รับซึ่งเป็นi*1 iหากมีมากกว่าหนึ่งแล้วได้รับซ้ำและตัดแบ่งลำดับที่:i*1 i*1i*1i*1i*1ตั้งแต่i==1iใน MATLAB และนี้เป็นเพียง:1i*1==ii*i*i*i

temp4 = [temp3,'.0']
      = i*1+++i*1i*1i*1+i*1.0

ท้าย.0ดูเหมือนว่าไม่จำเป็นที่นี่ แต่มันจำเป็นถ้าตัวอักษรตัวสุดท้ายของการเป็นtemp3 +เราไม่สามารถผนวกศูนย์ได้เนื่องจากจะให้i*10ในกรณีด้านบนและดังนั้นผลลัพธ์ที่ผิด

และในที่สุดก็:

eval(temp4)
0.0000 + 1.0000i

สิ่งนี้ไม่ทำงานใน Octave ด้วยเหตุผลหลายประการ strrepไม่สามารถรับค่า ASCII เป็นอินพุตได้ แต่ต้องใช้อักขระจริง ( '0'แทน48) ยัง+++ไม่ได้ประเมินเพียง+ในคู่เป็นที่จะทำลายเพิ่มขึ้น / ลดลงทางลัดและx++x--


1
+1 สำหรับการใช้เสมอeval:-P คุณไม่สามารถใช้1iแทนได้1*iหรือ
Luis Mendo

1
โอ้คุณใช้มันแตกต่างกัน ฉลาดมาก!
Luis Mendo

ขอบคุณ :-) ผมต้องยอมรับว่าผมได้รับความพึงพอใจมากกับi*1ส่วนหนึ่ง ...
สตีวีกริฟฟิ


2

Mathematica, 84 ไบต์

ToExpression[#~IntegerString~2~StringTrim~"0"~StringReplace~{"0"..->"+","1"->"I "}]&

ฟังก์ชั่นไม่ระบุชื่อ รับตัวเลขเป็นอินพุตและส่งกลับตัวเลขที่ซับซ้อนเป็นเอาต์พุต


6
ว้าวฉันแปลกใจที่ Mathematica ไม่มีสิ่งนี้ในตัว!
HyperNeutrino

2

Mathematica, 75 ไบต์

ToExpression[#~IntegerString~2~StringReplace~{"1"->"I ","0"..->"+"}<>"-0"]&

ขึ้นมาอย่างเป็นอิสระด้วยโซลูชั่นเดียวกับที่ LegionMammal978 โพสต์เมื่อ 23 นาทีที่แล้ว! การแทนที่1ด้วยI (ซึ่งเป็นสัญลักษณ์ภายในของ Mathematica สำหรับสแควร์รูทของ -1) ทำงานได้เนื่องจากการเว้นวรรคนั้นถือว่าเป็นการคูณของนิพจน์ข้างเคียง สถานที่ที่ฉันบันทึกไว้ในโซลูชันอื่น ๆ คือการหลีกเลี่ยงความต้องการStringTrimคือการต่อท้ายเสมอ-0: หากเลขฐานสองลงท้าย1ด้วยการแสดงออกนี้สิ้นสุดลง...I-0ซึ่งไม่มีผลต่อมูลค่าของมัน ในขณะที่ถ้าเลขฐานสองลงท้ายด้วย '0' นิพจน์นี้จะจบลง...+-0ที่มีการแยกวิเคราะห์เป็น "เพิ่มลบ 0" และทำให้กำจัดเครื่องหมายบวกท้าย



2

Haskell, 102 91 89 87 ไบต์

0%a=a
n%c@[a,b]|odd n=div n 2%[-b,a]|d<-div n 2=zipWith(+)c$d%[mod d 2,0]
(%[0,0]).(*2)

หารสองซ้ำ ๆ กันและตรวจสอบบิต เก็บสะสมของi^(number of odds)ที่a+b*iถูกเข้ารหัสเป็น[a,b]และ*iเป็น[a,b]↦[-b,a](หมุน 90 องศา) เริ่มต้น(*2)คือการหลีกเลี่ยงการค้นหาบิตแรก

การใช้งาน (ขอบคุณ @OwenMorgan สำหรับตัวอย่าง):

(%[0,0]).(*2)<$>[656,172,707,32,277]
[[0,3],[-1,2],[-2,1],[0,1],[0,4]]

1

Java, 172 ไบต์

l->{int i=0,j=i;for(String x:l.toString(2).split("0")){int a=x.length();j+=a&1>0?(a&3>2?(a-3)/-4+1:(a-3)/4+1):0;i+=a&1<1?(a&3>1?(a-3)/4+1:(a-3)/-4+1):0;}return i+"|"j+"i";}

1

Clojure, 183 ไบต์

#(loop[x(clojure.string/split(Integer/toString % 2)#"0+")y[0 0]a 0](if(= a(count x))y(recur x(let[z([[1 0][0 1][-1 0][0 -1]](mod(count(x a))4))][(+(y 0)(z 0))(+(y 1)(z 1))])(inc a))))

ฉันอนุญาตให้ทำเช่นนี้ได้หรือไม่

ใช้ฟังก์ชั่นดังนี้:

(#(...) {num}) -> (Wrap the # function in brackets first!)

1

ที่จริงแล้ว 35 ไบต์

├'0' aÆô' @s"j+"j'jo`"1j*1"'1τ(Æ`Y≡

ลองออนไลน์!

คำอธิบาย:

├'0' aÆô' @s"j+"j'jo`"1j*1"'1τ(Æ`Y≡
├                                    binary representation of input
 '0' aÆ                              replace 0s with spaces
       ô                             trim leading and trailing spaces
        ' @s                         split on spaces
            "j+"j                    join with "j+"
                 'jo                 append "j"
                    `"1j*1"'1τ(Æ`Y   do until the string stops changing (fixed-point combinator):
                     "1j*1"'1τ(Æ       replace "11" with "1j*1"
                                  ≡  evaluate the resulting string to simplify it

รหัส Python 3 ที่เทียบเท่าโดยประมาณ:

a='j+'.join(bin(eval(input()))[2:].replace('0',' ').strip().split())+'j'
b=0
while a!=b:b,a=a,a.replace("11","1j*1")
print(eval(a))

ลองออนไลน์!


การแยกที่ '0' ด้วย'0@sและใช้``░เพื่อตัดสตริงว่างใด ๆ ต่อท้ายควรช่วยคุณสี่ไบต์
Sherlock9

1

เยลลี่ 10 ไบต์

นี่ไม่ได้ดีไปกว่าคำตอบของ Jelly Dennis แต่ฉันต้องการลองใช้คำตอบของ Jelly ต่อไป ยินดีต้อนรับคำแนะนำการเล่นกอล์ฟ! ลองออนไลน์!

BŒrm2Ṫ€ı*S

Ungolfing

BŒrm2Ṫ€ı*S   Main link. Argument: n (integer)

B            Convert n to binary.
 Œr          Run-length encode the binary list.
   m2        Every 2nd element of the run_length encoding, getting only the runs of 1s.
     Ṫ€      Tail each, getting only the lengths of the runs.
       ı*    The imaginary unit raised to the power of each run (as * is vectorized).
         S   Sum it all into one complex number.

ในลิงค์ด้านบนอินพุต 1 ส่งคืน 1j อินพุต 2 ส่งคืน 1j .... ใช่ไหม
RosLuP

@RosLuP ใช่แล้วใช่ไหม เนื่องจากเราลบต่อท้าย 0, เทียบเท่ากับ1 => 1 => 1j 2 => 10 => 1 => 1j
Sherlock9

1

ที่จริงแล้ว 15 ไบต์

ยินดีต้อนรับคำแนะนำการเล่นกอล์ฟ! ลองออนไลน์!

├'0@s``░`lïⁿ`MΣ

Ungolfing:

         Implicit input n.
├        Convert n to binary.
'0@s     Split by '0's.
``░      Filter out non-truthy values.
`...`M   Map over the filtered result, a list of runs of '1's.
  l        Yield the length of the run of '1's.
  ïⁿ       Yield the imaginary unit to the power of that length.
Σ        Sum all of this into one complex number.

0

ความจริง, 140, 131, 118 108 ไบต์

b(x)==(s:=0;repeat(x=0=>break;r:=x rem 2;repeat(x rem 2=1=>(r:=r*%i;x:=x quo 2);break);s:=s+r;x:=x quo 2);s)

% i เป็นผู้ใช้จินตนาการ

sb(x:NNI):Complex INT==
  r:Complex INT;s:Complex INT:=0
  repeat
    x=0=>break
    r:=x rem 2
    repeat
       x rem 2=1=>(r:=r*%i;x:=x quo 2)
       break
    s:=s+r
    x:=x quo 2
  s

ผล

(3) -> b 4538
   The type of the local variable r has changed in the computation.
   We will attempt to interpret the code.
   (3)  - 1 + %i
                                                    Type: Complex Integer
(4) -> b 29
   (4)  0
                                                    Type: Complex Integer
(5) -> sb 299898979798233333333333333339188888888888888888222
   Compiling function sb with type NonNegativeInteger -> Complex Integer
   (5)  - 7 + 12%i
                                                    Type: Complex Integer
(6) -> b 299898979798233333333333333339188888888888888888222
   (6)  - 7 + 12%i
                                                    Type: Complex Integer

0

Perl 6 ,  40  46 ไบต์

ฉันมากับเรื่องนี้ค่อนข้างเร็ว

*.base(2).comb(/1+/).map(i***.chars).sum

แต่น่าเสียดายที่มันเป็นอยู่ในปัจจุบันที่ไม่ถูกต้องในRakudoการดำเนินงานใน MoarVM
say i ** 3; # -1.83697019872103e-16-1i

ดังนั้นฉันต้องทำสิ่งที่ดีที่สุดถัดไป:

*.base(2).comb(/1+/).map({[*] i xx.chars}).sum

ขยาย:

*\             # Whatever lambda
.base(2)       # convert to a Str representation in base 2
.comb(/ 1+ /)  # get a list of substrings of one or more 「1」s
.map({         # for each of those

  [*]            # reduce using 「&infix:<**>」
    i xx .chars    # 「i」 list repeated by the count of the characters matched

}).sum          # sum it all up

ทดสอบ:

.say for (4538, 29).map:

    *.base(2).comb(/1+/).map({[*] i xx.chars}).sum

# -1+1i
# 0+0i


0

PHP, 87 ไบต์

for($n=$argv[1];$n|$i;$n>>=1)$n&1?$i++:($i?$i=0*${$i&1}+=1-($i&2):0);echo"(${0},${1})";

เกือบจะเหมือนกับ ETHproductions´ solution ซ้ำเท่านั้นแทนที่จะเรียกซ้ำ
นำข้อมูลจากบรรทัดคำสั่งกำหนดตัวแปรและ${0}${1}


0

TI-Basic (TI-84 Plus CE), 70 ไบต์

Prompt X
0→S
0→N
While X
If remainder(X,2
Then
N+1→N
int(X/2→X
Else
S+i^Nnot(not(N→S
X/2→X
0→N
End
End
S+i^Nnot(not(N

ไม่มี builtin ในการแปลงเป็นสตริงไบนารี (และไม่มีการแยกสตริง) ดังนั้นโปรแกรมนี้แบ่ง 2 ด้วยตนเองโดยเพิ่ม N ทุกครั้งที่เห็น 1 และเพิ่ม i ^ N เป็น S (N> 0) และการรีเซ็ต N ถ้ามันเห็นศูนย์



0

R , 54 ไบต์

function(n,x=rle(n%/%2^(0:log2(n))%%2))sum(1i^x$l*x$v)

ลองออนไลน์!

n%/%2^(0:log2(n))%%2คำนวณเวกเตอร์ของเลขฐานสอง การใช้การเข้ารหัสความยาวรันเราใช้complexชนิดของ R เพื่อคำนวณหาผลรวมที่เหมาะสมคูณด้วยx$valuesเพื่อลบค่าศูนย์

ส่งคืนcomplexเวกเตอร์ขององค์ประกอบเดียว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.