ফিবোনাচি-স্টাইলের ম্যাট্রিক্স সম্প্রসারণ


25

ম্যাট্রিক্সের প্রতিটি সারি এবং তারপরে কলামের জন্য আমরা সেই সারি বা কলামে শেষ দুটি প্রবেশের যোগফলের সাথে একটি অতিরিক্ত এন্ট্রি যুক্ত করতে পারি। উদাহরণস্বরূপ নিম্নলিখিত ইনপুট ম্যাট্রিক্স সহ:

[ 1 1 1 ]
[ 2 3 4 ]

ফলাফল ম্যাট্রিক্স হবে:

[ 1 1 1 2 ]
[ 2 3 4 7 ]
[ 3 4 5 9 ]

একটি পূর্ণসংখ্যা এন এবং একটি [এক্স, ওয়াই] ম্যাট্রিক্স কমপক্ষে 2x2 আকারের একটি ইনপুট দেওয়া, উপরের এক্সটেনশন এন বার সম্পাদন করে ফলাফলটি আউটপুট দেয়। ফলাফলের ম্যাট্রিক্স সর্বদা আকারের হবে [এক্স + এন, ওয়াই + এন]।

উদাহরণ:

Input:                     Output:

2, [ 0 0 ]                 [ 0 0 0 0 ]
   [ 0 0 ]                 [ 0 0 0 0 ]
                           [ 0 0 0 0 ]
                           [ 0 0 0 0 ]


3, [ 1 1 1 ]               [ 1  1  1  2  3  5 ]
   [ 2 3 4 ]               [ 2  3  4  7 11 18 ]
                           [ 3  4  5  9 14 23 ]
                           [ 5  7  9 16 25 41 ]
                           [ 8 11 14 25 39 64 ]

উত্তর:


8

এমএটিএল , 13 14 15 16 20 21 বাইট

2*:"!tP2:Y)sv

1 জ্যাকেট অপসারণের জন্য @ জগারবকে ধন্যবাদ!

এটি অনলাইন চেষ্টা করুন!

2*         % implicitly input number N and multiply by 2
:          % create vector [1,2,...,2*N]
"          % for loop: do this 2*N times
  !        %   transpose. Implicitly input matrix in the first iteration
  tP       %   duplicate and flip vertically
  2:       %   vector [1,2]
  Y)       %   pick submatrix formed by the first two rows
  s        %   sum of each column
  v        %   append as a new row
           % end for
           % implicit display

1
আমি এমএটিএল জানি না, তবে 2Nদু'বার লুপ করার চেয়ে লুপের চেয়ে কম হবে না N?
Zgarb

@ জগারব অবশ্যই! আমি কীভাবে মিস করেছি? ধন্যবাদ !!
লুইস মেন্ডো

এমএটিএল এর একটি সংখ্যা দ্বিগুণ করার জন্য অন্তর্নির্মিত কি আছে?
Zgarb

@ জগারব নং আপনার প্রয়োজন 2*(পোস্টফিক্স স্বরলিপি)। হতে পারে এটিতে একটি অন্তর্নির্মিত একটি চরিত্র থাকা উচিত, এটি প্রায়শই ব্যবহৃত হয়। এছাড়াও 2^(বর্গক্ষেত্র)। তবে আমি কোড স্পেসের বাইরে চলেছি :-)
লুইস মেন্ডো

6

জে, 19 বাইট

(v"1@v=.,[+&{:}:)^:

এটি একটি ক্রিয়াপদ সংজ্ঞায়িত করে, যা তার বাম দিকে সংখ্যা নেয় এবং ডানদিকে ম্যাট্রিক্স গ্রহণ করে একটি ক্রিয়া তৈরি করে। দ্বিতীয় উদাহরণ হিসাবে, এটি দেয়

  3 ((v"1@v=.,[+&{:}:)^:) 2 3 $ 1 1 1 2 3 4
1  1  1  2  3  5
2  3  4  7 11 18
3  4  5  9 14 23
5  7  9 16 25 41
8 11 14 25 39 64

ব্যাখ্যা

(v"1@v=.,[+&{:}:)^:  Left argument x, right argument y
(               )^:  Repeat x times:
     v=.               Bind the following verb to v, and apply to y:
         [    }:         y and y-without-last-item
          +&{:           Sum of their last items
        ,                Append that to y
                       (v automatically threads to rows)
 v"1@                  then apply v to columns

3

কে, 23 বাইট

{x(2({x,+/-2#x}'+)/)/y}

পদক্ষেপে:

  {x(2({x,+/-2#x}'+)/)/y}[3;(1 1 1;2 3 4)]
(1 1 1 2 3 5
 2 3 4 7 11 18
 3 4 5 9 14 23
 5 7 9 16 25 41
 8 11 14 25 39 64)

এখানে চেষ্টা করুন


আপনি যদি অগ্রণী {xএবং পেছন সরিয়ে ফেলেন তবে এটি এখনও কাজ করেy}
এনজিএন

3

জেলি, 15 13 12 বাইট

@ ডেনিস দ্বারা -1 বাইট

ṫ-S;@"Z
ÇḤ}¡

@ লুইসেমেন্ডোর এমএটিএল উত্তরের মতো, এটি একটি অক্ষের সাথে রূপান্তর করার আগে অ্যারে স্থানান্তর করে। সুতরাং, আমাদের 2 * n বার ফাংশনটি কল করতে হবে।

ṫ-S;@"Z       Helper link. Input: x (2D array)
 -              Numeric literal: -1
ṫ               Get x[-1:], i.e. last two rows in x
  S             Sum
   ;@"          Append each to x. " is 'zipWith'; @ switches argument order.
      Z         Transpose the array.
ÇḤ}¡          Main link. Input: a, n
Ç               Call the last link on a
 Ḥ}             2n
   ¡            times.

এখানে চেষ্টা করুন


2

ES6, 134 বাইট

(n,a)=>[...a.map(b=>[...b,...Array(n)].map(c=>(c<1/0?0:c=a+d,d=a,a=c))),...Array(n)].map(b=>(b?0:b=[...a].map((c,j)=>c+d[j]),d=a,a=b))

ব্যাখ্যা:

(n,a)=> // arguments n is number to expand, a is original array
    [...
        a.map(b=> // for each row in a
            [...b,...Array(n)] // append n elements to the row
            .map(c=>(c<1/0?0:c=a+d,d=a,a=c))) // scan the elements and fill the new ones by summing the previous two
        ,...Array(n)] // append n rows
    .map(b=>(b?0:b=[...a].map((c,j)=>c+d[j]),d=a,a=b)) // scan the rows and fill the new rows by summing the previous two rows

2

হাস্কেল, 67 বাইট

o%m=m++[o(+)(last m)$last$init m]
(!!).iterate(map(id%).(zipWith%))

ব্যবহারের উদাহরণ:

*Main> ( (!!).iterate(map(id%).(zipWith%)) ) [[1,1,1],[2,3,4]] 3
[[1,1,1,2,3,5],[2,3,4,7,11,18],[3,4,5,9,14,23],[5,7,9,16,25,41],[8,11,14,25,39,64]]

কিভাবে এটা কাজ করে:

(!!).iterate(    ...         )  -- repeatedly apply ... to the first agrument and
                                -- pick the iteration defined by the second arg
                   (zipWith%)   -- for one iteration add a new row and
          map(id%)              -- then a new element at the end of each each row

o%m                             -- add row or element at the end of a row resp.
                                -- argument o is a "modify function"
                                --          m the whole matrix or a row
 m++[    (last m)(last$init m)] -- take m and append the result of combining the
                                -- last and 2nd last element of m
     o(+)                       -- with a modified version of (+)
                                -- modification is none (aka. id) when adding an
                                -- element to the end of a row and
                                -- zipping elementwise (zipWith) when adding a row

আমি হ্যাশেল আভিজাত্য আমি যথাসাধ্য পেয়েছি sudo apt-get install haskell-platformএবং ghciআরইপিএল চালাচ্ছি যা আমাকে একটি Prelude> প্রম্পট দেয় । আমি পেস্ট যখন আমি o%m=m++[o(+)(last m)$last$init m]পেতে <interactive>:2:4: parse error on input '='। আপনি কি আমাকে একটু প্রাইমার দিতে পারেন হয় উত্স ফাইল থেকে এটি চালাচ্ছেন বা আরপিএলে?
ডিজিটাল ট্রমা

@ ডিজিটালট্রামা: হয় o%m=...একটি ফাইলের মধ্যে লাইনটি (এবং কেবল এই লাইনটি) রাখুন, আসুন বলি fib-matrix.hs। তারপরে আপনি সংজ্ঞাটি লোড করতে :l fib-matrix.hsকমান্ডটি ব্যবহার করতে পারেন ghciএবং আমার ব্যবহারের উদাহরণে বর্ণিত মূল ফাংশনটি কল করতে পারেন । - বা ব্যবহার let o%m=... in ( (!!). ... ) [[1,1,1]...] 3
নিমি

1
@ ডিজিটালট্রামা: ওহ, তৃতীয় উপায় আছে: মূল ফাংশনটির একটি নাম দিন, উদাহরণস্বরূপ f=দ্বিতীয় লাইনের সামনে একটি যুক্ত করুন : f=(!!).iterate...একটি ফাইলের মধ্যে দুটি লাইন সংরক্ষণ করুন এবং এটির মাধ্যমে লোড করুন l: <filename.hs>। তারপর আপনি কল করতে পারেন f [[1,1,1],[2,3,4]] 3, ইত্যাদি
nimi

আমি নিশ্চিত নই যে আমি এটিকে বৈধ হাস্কেল হিসাবে গ্রহণ করব, শীর্ষ লাইনটি একটি ফাংশন সংজ্ঞা এবং আরইপিএল-তে ব্যবহারের জন্য সংশোধন প্রয়োজন, তবে ২ য় লাইনটি কেবল আরপিএলে ব্যবহার করা যেতে পারে।
ড্যানিয়েল হিল

@ ড্যানিয়েলহিল: মেটাতে একটি বিষয় রয়েছে যা বৈশ্বিক সহায়ক ফাংশনগুলির উপর নির্ভরশীল নামবিহীন ফাংশনগুলিকে অনুমতি দেয়।
নিমি

2

সিজেম, 17 16 বাইট

q~2*{~_2$.+]z}*p

ইনপুট ফর্ম্যাটটি হ'ল ম্যাট্রিক্স প্রথম (সিজ্যাম-স্টাইল 2 ডি অ্যারে হিসাবে) এবং এরপরে পুনরাবৃত্তির সংখ্যা।

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

দেখা যাচ্ছে এটি সবার মতো একই সমাধান:

q~      e# Read and evaluate input.
2*      e# Double the iteration count.
{       e# Run this block that many times...
  ~     e#   Dump all rows on the stack.
  _     e#   Copy the last row.
  2$    e#   Copy the penultimate row.
  .+    e#   Vectorised addition.
  ]     e#   Wrap all rows in a new array.
  z     e#   Transpose such that the next iteration processes the other dimension.
}*
p       e#   Pretty-print.

1

গুরুতরভাবে, 20 বাইট

,,τ"┬`;d@d@X+@q`M"£n

তারপরে ম্যাট্রিক্সকে ইনপুট নেয় (একটি 2D তালিকা হিসাবে) N। একটি 2D তালিকা আউটপুট করে।

এই সংস্করণটি কোনও কারণে অনলাইন দোভাষীকে নিয়ে কাজ করে না, তবে এই প্রাক-চ্যালেঞ্জ প্রতিশ্রুতি নিয়ে কাজ করে

23 বাইটের জন্য অনলাইনে কাজ করা একটি সংস্করণ:

,τ",┬`;d@d@X+@q`M"nkΣ£ƒ

বিপরীত ক্রমে ইনপুট নেয় ( Nতারপরে ম্যাট্রিক্স)।

এটি অনলাইন চেষ্টা করুন!

আমি কিছুক্ষণ ঘুমানোর পরে একটি ব্যাখ্যা যুক্ত করব। দোভাষী বাগের আশেপাশে কাজ করা কখনই মজাদার নয়।


1

পাইথ, 13 12 বাইট

u+Rs>2dCGyEQ

এটি অনলাইনে চেষ্টা করুন। পরীক্ষা স্যুট.

বেশিরভাগ উত্তরের জন্য একই অ্যালগরিদম ব্যবহার করে। প্রথম লাইনে 2D অ্যারে হিসাবে ম্যাট্রিক্সকে ইনপুট হিসাবে নেয় এবংn দ্বিতীয় লাইনে ।

ব্যাখ্যা

u        yEQ     do 2*N times, starting with input matrix:
       CG          transpose
 +R                append to each row:
   s                 sum of
    >2d              last 2 elements of row

1

মতলব, 60 বাইট

আমি প্রথমে মতলবের অভিনব ইনডেক্সিং পদ্ধতিগুলি (অর্থাত্‍ A(end+1,:)=sum...) উদ্বুদ্ধ করছিলাম যে আমি বুঝতে পেরেছিলাম যে এই বিরল ক্ষেত্রে, সরল কণ্ঠস্বরটি আসলে মতলবতে সস্তা। খুব খারাপ আমাকে এটিকে একটি আসল ফাংশনে রূপান্তর করতে হয়েছিল। অষ্টাভের সাথেও কাজ করা উচিত।

function A=f(A,n)
for i=1:2*n
A=[A;sum(A(end-1:end,:))]';end

আমি মনে করি এটি কীভাবে অ্যালগরিদম তৈরি করবেন না তার একটি প্রধান উদাহরণ । A = 2x2 এর জন্য, n = 1000 এই অ্যালগরিদমটি ইতিমধ্যে আমার ল্যাপটপে 5 সেকেন্ড সময় নেয়, n = 2000 এটি প্রায় 50 সেকেন্ড! (বা প্রায় 30 এর দশকটি যদি gpuArrayআমার বিশ্বস্ত কোয়াড্রো 1000 এম এর জন্য ধন্যবাদ হয়)


আমার কাছে মতলবের কপি নেই। আমি কি এটি জিএনইউ অকটভের অধীনে চালাতে পারি? তা হলে আপনি কি নির্দেশনা দিতে পারেন?
ডিজিটাল ট্রমা

1
হ্যাঁ আমি এটিকে মতলব বলেছি কারণ এটি কোনও অক্টাভ নির্দিষ্ট ফাংশন ব্যবহার করে না। এটিকে এফএম নামক কোনও ফাইলে রাখুন এবং উদাহরণস্বরূপ চালানf([0,1;2,3],1000)
সানচাইসিস

আমি দেখি. 1) হিসাবে সংরক্ষণ করুন f.m। 2) শুরু করুন octave। 3) load f.m; f([1,1,1;2,3,4],3)আরপিএল প্রম্পটে আটকান - আমার জন্য কাজ করে।
ডিজিটাল ট্রমা

যদি তুমি বল! আমি কেবল অষ্টাভ অনলাইন ওয়েবসাইটটি ব্যবহার করি তাই অন্যথায় এটি কীভাবে কাজ করবে সে সম্পর্কে কোনও ধারণা নেই। আমি সেখান থেকে
পারমলিক

1

জাভা, 2179 বাইট

সবেমাত্র এটি কাজ করে: - এই কোডটি জাভা ল্যাঙ্গুয়েজে রয়েছে।

import java.util.Scanner;

public class FebonnaciMatrix {
        static Scanner scan=new Scanner(System.in);

        public static void main(String[] args) {

        int x,y;
        System.out.println("For the Array to Work Upon:- ");

        System.out.println("Enter the Row:- ");
        int row=scan.nextInt();
        System.out.println("Enter the Column:- ");
        int col=scan.nextInt();

        int inpArr[][]=new int[row][col];

        System.out.println("Enter the values");
        inpArr=inpValues(row,col);

        System.out.println("The Input Array is:- ");
        display(inpArr,row,col);

        System.out.println("Input the Array size of Febonacci Array ");

        System.out.println("Enter the Row");
        int frow=scan.nextInt();
        System.out.println("Enter the Column");
        int fcol=scan.nextInt();

        int febArr[][]=new int[frow][fcol];
        febArr=copyValue(inpArr,febArr,row,col);

        for(x=0;x<row;x++)
        {
            for(y=col;y<fcol;y++)
                febArr[x][y]=febArr[x][y-2]+febArr[x][y-1];
        }

        for(x=row;x<frow;x++)
        {
            for(y=0;y<fcol;y++)
                febArr[x][y]=febArr[x-2][y]+febArr[x-1][y];
        }

        System.out.println();
        System.out.println("The Febonacci Array:-");
        display(febArr,frow,fcol);
    }

    static void display(int[][] arr,int row,int col)
    {
        int x,y;
        for(x=0;x<row;x++)
        {
            for(y=0;y<col;y++)
                System.out.print(arr[x][y]+"\t");
            System.out.println();
        }
    }

    static int[][] inpValues(int row,int col)
    {
        int arr[][]=new int[row][col];
        int x,y;
        for(x=0;x<row;x++)
        {
            for(y=0;y<col;y++)
            {
                System.out.print("Enter the value:- ");
                arr[x][y]=scan.nextInt();
            }
        }
        return arr;
    }

    static int[][] copyValue(int[][] old, int[][] ne, int row,int col)
    {
        int x,y;    
        for(x=0;x<row;x++)
        {
            for(y=0;y<col;y++)
                ne[x][y]=old[x][y];

        }
        return ne;
    }

}

1
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! প্রশ্নটি কোড-গল্ফকে ট্যাগ করা হয়েছে যার অর্থ উত্তরগুলি সংক্ষিপ্ত পরিমাণে কোড (বাইটে) রচনায় প্রতিযোগিতা করা হচ্ছে। আপনার উত্তরটি সমস্যার সমাধান করতে পারে তবে আমি কোডটি "গল্ফ" করার (যেমন এটি যতটা সম্ভব সংক্ষিপ্ত করে তোলার) খুব কম চেষ্টা দেখতে পাচ্ছি। আপনার কোড সহ এটি করার জন্য প্রচুর তুচ্ছ সুযোগ রয়েছে, যেমন 1-চর নামের সাথে ভেরিয়েবল এবং অপ্রয়োজনীয় সাদা স্থান অপসারণ। এর বাইরে আপনি এই টিপসটি পড়তে
ডিজিটাল ট্রমা

... কোড-গল্ফের ট্যাগ-উইকিতে এক নজরে দেখুন , বিশেষত একটি কোড গল্ফের উত্তর আমি কীভাবে দেব? কোন ইঙ্গিত? অধ্যায়. আরও খেয়াল করুন যে জাভা অন্যান্য অনেক ভাষার সাথে তুলনায় সংক্ষিপ্ত কোডে গল্ফ করা কুখ্যাত। যদিও এটি আপনাকে হতাশ করা উচিত নয় - আপনার যদি একটি ভাল গল্ফযুক্ত জাভা উত্তর থাকে তবে এটি অন্যান্য জনপ্রিয়তার চেয়ে দীর্ঘতর হলেও এটি বেশ জনপ্রিয় হতে পারে। সমস্ত মন-বাঁকানো সংক্ষিপ্ত আকারের উত্তরগুলি থেকে বিরত থাকবেন না - এই সম্প্রদায়টি ভাষার প্রতিবন্ধকে বিবেচনায় নিতে ভাল হতে পারে।
ডিজিটাল ট্রমা

@ ডিজিটালট্রামা- ধন্যবাদ ... এর জন্য নতুন হিসাবে আমাকে সাহায্য করার জন্য ... আমি অবশ্যই লিঙ্কগুলি দিয়ে যাব এবং একটি নতুন কোড নিয়ে আসব ...
ধ্রুব গোবিলা

যেহেতু আপনি একজন নতুন ব্যবহারকারী, আমি আরও ভাল ফর্ম্যাটিংয়ের জন্য আপনার উত্তর সম্পাদনা করার স্বাধীনতা নিয়েছি। বিশেষত ক) একটি স্পষ্ট শিরোনাম উল্লেখ করে ভাষা এবং বাইটের সংখ্যা, খ) আপনার কোডের কোড বিন্যাস। সমস্ত স্ট্যাকএক্সচেঞ্জ সাইটগুলিতে কোড ফর্ম্যাট করা সহজ - কেবল 4 স্পেস সহ আপনার সমস্ত কোড লাইন উপসর্গ করুন। প্রকৃতপক্ষে আরও সহজ - সম্পাদনা বাক্সে আপনার কোড নির্বাচন করুন, তারপরে {}সম্পাদনা বাক্সের শীর্ষে ক্লিক করুন - এটি স্বয়ংক্রিয়ভাবে এই উপসর্গটি করবে do
ডিজিটাল ট্রমা

ঠিক আছে ... আমি কেবল এটি যাচাই করবো ...
ধ্রুব গোবিলা

1

পাইথন, 103 105 বাইট

f=lambda n,L:f(n-1,[l+[sum(l[-2:])]for l in L])if n else L
lambda n,L:zip(*f(n,map(list,zip(*f(n,L)))))

বেনামে ফাংশন তালিকার তালিকা নিয়ে থাকে এবং পুনরাবৃত্ত ফাংশনে পাস করে f। আউটপুট স্থানান্তরিত হয় এবং তারপরে fআবার পাস করা হয়, তারপরে দ্বিতীয় গোয়ের আউটপুট পুনরায় স্থানান্তরিত হয়। আউটপুট টিপলগুলির একটি তালিকা

বাকুরিউকে ধন্যবাদ দুটি বাইট সংরক্ষণ করেছেন


1
n>0সহজেই হতে পারে n, যেহেতু আপনি একটি ইতিবাচক দিয়ে শুরু করেন nএবং যখন আপনি 0এর মান পৌঁছান তবে এটি মিথ্যা।
বাকুরিউ


0

পার্ল 6 ,  87 73  71 বাইট

->\c,\m{for ^c {.[+*]=[+] .[*X-1,2]for m;m.push: [map {[+] m[*X-1,2;$_]},m[0].keys]};m}
->\c,\m{for ^c {.[+*]=[+] .[*X-1,2]for m;m[+*]=[m[*-2;*] »+«m[*-1]]};m}
->\c,\m{for ^c {.[+*]=[+] .[*X-1,2]for m;m[+*]=[m[*-2;*]Z+m[*-1;*]]};m}
-> \c, \m {
  for ^c { # 0 ..^ c

    # each row
    .[+*]                            # new column at the end of row ($_)
          = [+] .[ * X- 1,2 ]        # add up the last two entries in row ($_)
                              for m; # for every row

    # too bad this was longer than the above code
    # m[*;+*]=map *+*,m[*;*-2,*-1]

    # each column
    m[ +* ]                 # add new row
            = [             # make it an Array rather than a List
                m[ *-2; * ] # the second to last row
                »+«         # added columnwise with
                m[ *-1 ]    # the last row
              ]
  };

  m # return the result
}

ব্যবহার:

use v6.c;
# give it a lexical name
my &code = ->\c,\m{  }

my @return = code 3,[[1,1,1],[2,3,4]];

put '[ ', $_».fmt('%2d'), ' ]' for @return;

put '';

put @return.perl ~~ {S:g/' '//};
[  1  1  1  2  3  5 ]
[  2  3  4  7 11 18 ]
[  3  4  5  9 14 23 ]
[  5  7  9 16 25 41 ]
[  8 11 14 25 39 64 ]

[[1,1,1,2,3,5],[2,3,4,7,11,18],[3,4,5,9,14,23],[5,7,9,16,25,41],[8,11,14,25,39,64]]

এটিকে আটকে perl6 দেওয়া আমাকে কিছু ত্রুটি দেয় । আমি একজন পার্ল আভিজাত্য - আমি কী ভুল করছি?
ডিজিটাল ট্রমা

@ ডিজিটালট্রামা আমি দুঃখিত আমি উপরের কোডটি দিয়ে প্রতিস্থাপনের প্রয়োজন my &code = ->\c,\m{ … }তা পরিষ্কার করে দেওয়ার জন্য আমার ব্যবহারটি লেখা উচিত ছিল ->\c,\m{ … }। আমি সাধারণত একটি অন্তর্নিহিত $_বা @_সুস্পষ্ট স্থানধারক পরামিতি ব্যবহার করি $^aকারণ সেগুলি সংক্ষিপ্ত হতে থাকে। আমি শুধু এটি সম্পর্কে চিন্তা না। এছাড়াও নিশ্চিত হয়ে নিন যে আপনি একটি নতুন পর্যাপ্ত সংস্করণ ব্যবহার করছেন ( $*PERL.compiler.version !before 2015.12)
ব্র্যাড গিলবার্ট b2gills

@ ডিজিটালট্রামা আপনি ফ্রেইনডটনে # পার্ল6 চ্যানেলেও যেতে পারেন এবং কোডটি চালানোর জন্য ক্যামেলিয়া ( এটির মতো) ব্যবহার করতে পারেন (লাইন m: এবং একটি স্পেস পূর্ববর্তী লাইনের সাথে ) আপনি সরাসরি ক্যামেলিয়াও চিত্রনাঙ্ক করতে পারেন
চিত্রনাট্য
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.