タグ付けされた質問 「rational-numbers」

この課題には、有理数、つまり整数の分数として表現できるものの操作が含まれます。有理数が許容されるいくつかの入出力形式の1つにすぎない場合は、このタグを使用しないでください。正確な有理演算を使用する必要がある場合は、このタグを使用してください。

18
そっくりの形
同様の数字 2つの長方形は、辺の比率が同じ場合に似ています。 これらの2つの長方形を検討してください。高さ5行、幅11文字の長方形: =========== =========== =========== =========== =========== 高さ10行、幅22文字の長方形: ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== これらの形状は、側面の比率が同じであるため類似しています。正式に配置するには(hhhが最短辺、wwwが最長辺): h1w1=h2w2h1w1=h2w2 \frac{h_1}{w_1} = \frac{h_2}{w_2} 次のこともできます。 h1h2=w1w2h1h2=w1w2 \frac{h_1}{h_2} = \frac{w_1}{w_2} チャレンジ 「メイン」長方形といくつかの「その他」長方形を取り、「その他」が「メイン」に似ているものを印刷するプログラムまたは関数を作成します。 入力 形状と形状のリスト。各形状は、2つのゼロ以外の正の整数で構成され、長方形の幅と高さを示します。たとえば、これ: (4,2), (3,9) は、4x2と3x9の2つの長方形を示します。ただし、入力の正確な形式は必要に応じて変更できます。 出力 「メイン」に類似した「その他」の形状のインデックス。インデックスが0ベースか1ベースか、出力の正確な形式と順序を選択できます。 サンプルプログラム Pythonの場合: main = eval(raw_input()) # The main rectangle. rects = eval(raw_input()) …

21
繰り返し小数を小数に変換します
この質問は、小数の終端だけに適用する必要はありません-小数の繰り返しは、アルゴリズムを介して分数に変換することもできます。 あなたの仕事は、入力として繰り返される小数をとるプログラムを作成し、その小数展開を生成する対応する分子と分母(最低条件で)を出力することです。1より大きい分数は、などの不適切な分数として表す必要があります9/5。入力が正であると仮定できます。 繰り返される小数はこの形式で与えられます: 5.3.87 次のように、2番目のドットの後のすべてが繰り返されます。 5.3878787878787... プログラムは、分子(分母)を表す2つの整数をスラッシュ(またはプレーンテキストを出力しない場合は言語の同等の形式)で区切って出力します。 889/165 小数点の終了には、2番目のドットの後には何もありません。また、繰り返しのない小数部分のない小数点には、2つのドットの間に何もありません。 テストケース これらのテストケースは、必要なすべてのコーナーケースをカバーしています。 0..3 = 1/3 0.0.3 = 1/30 0.00.3 = 1/300 0.6875. = 11/16 1.8. = 9/5 2.. = 2/1 5..09 = 56/11 0.1.6 = 1/6 2..142857 = 15/7 0.01041.6 = 1/96 0.2.283950617 = 37/162 0.000000.1 = 1/9000000 0..9 = 1/1 …

23
アスキーアートオクタゴン
入力整数を指定するとn > 1、n文字で構成される辺の長さのASCIIアートオクタゴンを出力します。以下の例を参照してください。 n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

24
ogl-edocfチャレンジ
入力 範囲のASCII文字で構成される空でないシャッフルされた文字列。[ 32..126 ][32..126][32..126] 出力 出力は、入力文字列に連続した回転を適用することにより取得されます。 [a-zA-Z]入力文字列の各文字()について、左から右へ: 文字が大文字の場合、その前のすべての文字を左に1ポジションだけ回転します 文字が小文字の場合、その前のすべての文字を1つ右に回転します 例 入力:「Cb-Ad」 最初の文字は「C」です。左に回転する必要がありますが、この「C」の前に文字はありません。したがって、回転するものは何もありません。 次の文字は「b」です。「C」を右に回転します。単一の文字であるため、変更されません。 文字「-」は文字ではないため、回転をトリガーしません。 次の文字は「A」です。「Cb-」を左に回転すると、「bC Ad」が得られます 4番目の最後の文字は「d」です。「b-CA」を右に回転させると、「Ab-C d」が得られます したがって、予想される出力は「Ab-Cd」です。 ルール 入力は、文字列または文字の配列として受け取ることができます。これは、言語に応じて、同じである場合とそうでない場合があります。 文字列の代わりに文字の配列を出力することもできます。 これはogl-edocf code-golfです テストケース "cbad" -> "abcd" "ACBD" -> "ABCD" "Cb-Ad" -> "Ab-Cd" "caeBDF" -> "aBcDeF" "aEcbDF" -> "abcDEF" "ogl-edocf" -> "code-golf" "W o,ollelrHd!" -> "Hello, World!" "ti HIs …
22 code-golf  string  code-golf  string  code-golf  string  parsing  brainfuck  code-challenge  python  hello-world  error-message  code-golf  string  code-golf  number  integer  counting  subsequence  code-golf  string  cipher  code-golf  array-manipulation  arithmetic  integer  matrix  code-golf  math  sequence  code-golf  restricted-source  pi  popularity-contest  cops-and-robbers  polyglot  popularity-contest  cops-and-robbers  polyglot  code-golf  file-system  king-of-the-hill  code-golf  number  sequence  integer  rational-numbers  string  code-challenge  source-layout  code-golf  ascii-art  king-of-the-hill  code-golf  array-manipulation  sorting  code-golf  string  code-golf  restricted-source  source-layout  tips  math  code-challenge  permutations  logic-gates  code-golf  number  random  integer  code-golf  math  code-golf  math  number  decision-problem  king-of-the-hill  python  board-game  code-challenge  brainfuck  busy-beaver  code-golf  number  cops-and-robbers  polyglot  obfuscation  answer-chaining  code-golf  number  integer  conversion  code-golf  string  parsing  code-golf  ascii-art  number  king-of-the-hill  javascript  code-golf  source-layout  radiation-hardening  code-golf  array-manipulation  matrix  code-golf  string  graph-theory  code-golf  array-manipulation  decision-problem  code-golf  string  ascii-art  code-golf  string  code-golf  array-manipulation 

14
丸められていない分数
分数を10進数に変換し、その数値を格納する場合、特定の量のメモリのみを使用するため、多くの場合、丸める必要があります。5桁の10進数しか保存できないとすると、5/3は1.6667になります。2桁の10進数しか保存できない場合は、1.7になります(常に0〜9.99の間にあると仮定します...)。 1.7でそのプロセスを逆にしようとして、端数を取り戻したい場合、1.7は丸められた数値にすぎないことがわかっているため、それは難しい場合があります。もちろん、17/10を試すこともできますが、それは「エレガントな」5/3と比べてかなり「ugい」部分です。 そのため、目標は、分母bが最小の分数a / bを見つけることです。これにより、正しく丸められたときに丸められた10進数が得られます。 詳細 入力には、0(含む)から10(含まない)の「。」の1から5桁までの数字の文字列が含まれます。最初の数字の後。n桁数を表すとしましょう。出力は[numerator, denominator]、分子が非負で分母が正である2つの整数のリスト/配列または合理的なデータ型(独自に作成するか、組み込みを使用できます)である必要があります。分数の分子/分母は、n数字(n-1小数点以下の数字を意味する)に正しく丸められる場合、入力と等しくなければなりません。 制限:許可されるループステートメントは1つだけです。つまり、コード全体で単一のループステートメント(foror whileまたはgotoetcなど、およびリスト/配列のすべての要素にコードを適用する、mapまたはfoldそのような機能ループ)のみを使用できますが、それを「乱用」することは自由ですまたは再帰などを使用します 関数を作成する必要があります。言語に関数がない場合(またはある場合でも)、入力が変数(またはstdin経由の入力)に格納されていると仮定して、結果を出力するか、ファイルに書き込むことができます。最も少ないバイト数が優先されます。 丸め 丸めは「従来の」丸め規則に従う必要があります。つまり、切り捨てられる最後の数字が5以上の場合、切り上げ、他の場合は切り捨てます。たとえば、 四捨五入すると4.5494になります 1桁:5 2桁:4.5 3桁:4.55 4桁:4.549 例 次のテストケースとその他の「興味深い」テストケースを含めてください。 Input 1.7 Output 5/3 Input 0. Output 0/1 Input 0.001 Output 1/667 Input 3.1416 Output 355/113

11
piの適切な合理的近似
分母の順序が小さい順に、分母<1000000のpiのすべての適切な合理的近似を出力するプログラムを作成します。 a/bは、分母がを超えない他の有理数よりもpiに近い場合、piの「適切な有理数近似」ですb。 出力には合計167行が含まれ、開始と終了は次のようになります。 3/1 13/4 16/5 19/6 22/7 179/57 ... 833719/265381 1146408/364913 3126535/995207 最短のプログラムが勝ちます。

20
私は自分の本をこのテーブルから遠ざけたい
ストーリー だから私は、他の本だけで私のテーブルから分離したい本を持っています。これを本の長さで達成するために必要な本の数を知りたい。nnn 以下は、Wolframの友人が描いた視覚化です。 WolframおよびWikipediaのトピックに関する詳細情報。 チャレンジ 整数の入力与えられると、最上部の本がテーブルから水平方向にn本の長さだけ離れるのに必要な本の数を出力します。または次の不等式で入力n のmの最小整数値を見つけます。 m ∑ i = 1 1nnnnnn mmmnnn∑i=1m12i≥n∑i=1m12i≥n\sum_{i=1}^{m}\frac{1}{2i} \geq n 編集:分数の場合、少なくともIEEE単精度浮動小数点を使用します。投稿後にチャレンジを編集して申し訳ありません (OEIS A014537) テストケース 1 4 2 31 3 227 5 12367 10 272400600

3
人生がレモンを与えたら、レモネードを作りなさい
チャレンジ あなたはどこにでも単語が、入力文字列が与えられます"Lemon"、それはに変換する必要が発見され"Lemonade" たがa、d、およびe文のどこかから借りなければなりません。 例 入力例: 子供の頃にレモンを見つけました 出力例: 私は子供の頃レモネードを作りました レモネードは、元から次の上付き文字を盗んで作成されました 私はフン日間レモネードWH 電子を nは私がいた子供 これは、「e」、「d」、および「a」という可能な出力例の1つにすぎません。これはどこからでも取得できます(もちろん、単語以外はlemon) コメント •、、またはsが十分eでない場合は、指定された文字で実行可能なことを出力する必要があります。たとえば、入力は出力されますadbdblemonbblemond • lemonテキストは常にスタンドアロン(各側のスペース)であるとは限りません。たとえばlemons、入力のどこかに単語があり、出力は次のようになります。lemonades •入力にはlemon、0であっても任意の数のsを含めることができますlemon(この場合、出力は入力と同一になります)。 •レモネードを大文字と小文字で作成できます。たとえば、にleMonなる可能性がleMonadeあり、ade借りたものはどのような場合でも可能です(したがって、になる可能性もありますleMonADe)。あなたが借りた手紙のケースは、あなたがそれを借りたときの状態のままでなければなりません。(入力例->出力、he hAD lemOn-> h h lemOnADe) •完全なプログラムである必要はありません。機能だけで十分です。 •入力はCP437文字セットのみであると仮定できます。 コードゴルフ これはcode-golfであるため、バイト数が最も少なくなります! 擬似テストケース *注意:特定の入力に対して複数の出力が存在する可能性があるため、プログラムはこれらのテストケースのように正確に出力されない場合があります。これは、人々がロジックを理解できるようにするためです。 入力:EpaD leMons 出力:p LeMonaDEs 入力:hello world 出力:hello world 入力:レモンレモン 出力:レモンレモン *( 、、 文字は別の「レモン」から取られてはいけません)ead 入力:HE HADレモネード 出力:HH lemonADEade 入力:あなたはレモンが好きですか?あなたはレモンで私を苦しめました! 出力:o lemonADesが好きですか?あなたはレモネードを盛り上げました! …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

2
有理分解a = xyz(x + y + z)
書き込み機能x(a)、y(a)およびz(a)任意の合理的なため、このようなことをa 、すべての機能が有理数を返すとx(a)*y(a)*z(a)*(x(a) + y(a) + z(a)) == a。0以上と仮定することができます。 プログラムが数学的に健全である限り、プログラムで合理的なタイプまたは操作を使用する必要はありません。たとえば、答えに平方根を使用する場合、引数が常に有理数の平方であることを示す必要があります。 あなたの言語にとって関数が扱いにくいか存在しない場合、3つの名前付き関数x、y、zを書くか、代わりに3つのプログラムを書くことができます。または、3つの数値x、y、zを返す単一のプログラム/関数を作成することもできます。最後に、必要に応じて、有理数を分子/分母のペアとして入出力できます。スコアは、3つの関数または3つのプログラムの合計サイズ(バイト単位)です。最小スコアが勝ちます。 ブルートフォーシングは許可されていません。任意のa = p / q(p、q≤1000)の場合、プログラムは10秒以内に実行されます。 例(これは、分解がこれらの数値を提供する必要があるという意味ではありません): x = 9408/43615 y = 12675/37576 z = 1342/390 x*y*z*(x+y+z) = 1

2
いくつかの周期的および非周期的部分を交換します
すべての有理数の10進表現にp/qは、次の形式で周期的なテール、非周期的なヘッド、および小数点の前のセクションがあります。 (before decimal point).(non-periodic)(periodic) 以下に例を示します。 1/70 = 0.0142857... = (0).(0)(142857) 10/7 = 1.428571... = (1).()(428571) ## no non-periodic part 1/13 = 0.076923... = (0).()(076923) 3/40 = 0.075 = (0).(075)() ## no periodic part -2/15 = -0.13... = -(0).(1)(3) ## negative 75/38 = 1.9736842105263157894... = (1).(9)(736842105263157894) ## periodic part longer than …

30
指定された幅で#の中空の正方形を描画します
私はCodingameからこの課題を受け取り、私のものよりも優れたソリューションに興味があります。 標準入力を使用して幅を指定すると、指定された幅と長さで「#」の中空の四角形が描画されます。 例: 5の結果 ##### # # # # # # ##### 私はこれを解決するためにPythonを使用したので、他のPythonコードに特に興味があります。ただし、必要な言語でソリューションを投稿してください。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

22
継続的な分数を単純化する
継続分数は、分数を反復的に記述する式です。それらはグラフィカルに表すことができます: または、値のリストとして表すことができます。 [a0; a1, a2, a3, ... an] チャレンジ: 基数:と分母値のリストを取得し、連続分数を単純化された有理分数に単純化します。分子と分母を個別に返すか、印刷します。a0[a1, a2, a3, ... an] 例: √19 : [4;2,1,3,1,2]: 170/39 ℯ: [1;0,1,1,2,1,1]: 19/7 π: [3;7,15,1,292,1]: 104348/33215 ϕ: [1;1,1,1,1,1]: 13/8 実装例:(python) def foo(base, sequence): numerator = 1 denominator = sequence[-1] for d in sequence[-2::-1]: temp = denominator denominator = d * denominator …

9
Cantorセット内ですか?
チャレンジ この課題では、特定の番号がカンターセットに含まれているかどうかを判断する必要があります。最初に、Cantorセットを定義しましょう。 最初に、0〜1の数字から始めます。この範囲外の数字は、Cantorセットには含まれません。ここで、数字を3つの等しい部分に分割しましょう:[0,1 / 3]、[1 / 3,2 / 3]、[2/3、1]。最初と最後の部分の範囲内にない数値は、カンターセットに含まれません。ここで、セグメント[0,1 / 3]および[2/3、1]に対してこのプロセスを繰り返します。それから残り物を繰り返します。あなたはこれを永遠にやり続けます。最終的に、残りのすべての番号はカンターセットに含まれます。以下に、最初の6つの反復の図を示します。 入力 2つの整数xとy。 0 < y < 2^15 0 <= x <= y 最大公約数xとyしない限り、1ですx == 0。 出力 x/yCantorセットにある場合は真実です。カントールセットにない 場合x/yは偽。 例 次に、Cantorセットに含まれる数値の例を見てみましょう。 1/3 -> true それは境界上にあり、境界は削除されません。 1/4 -> true 1/4セグメントの中央の3分の1にあることはありませんが、どちらの境界にもあることはありません。そのパスをたどると、実際にはセクションの最初と最後の3分の1にあることがわかります。 1/13 -> true 1/13 最初のセクション、最初のセクション、最後のセクションを交互に切り替えます。 1/5 -> false 1/5 上の図の3行目の1/9から2/9までの最初の空のブロックに分類されます。 その他のテストケース: …

10
エジプト分数
概要: ウィキペディアから:エジプトの分数は、異なる単位分数の合計です。つまり、式の各分数には1に等しい分子と正の整数である分母があり、すべての分母は互いに異なります。このタイプの式の値は、正の有理数a / bです。すべての正の有理数は、エジプトの分数で表すことができます。 チャレンジ: 特定の分数に達する単位分数の最小セットのすべての分母の値を返す最短関数を記述します。 ルール/制約: 入力は2つの正の整数値になります。 これは、上ですることができSTDIN、argv、カンマ区切り、スペースが区切られ、あるいは他の方法は、あなたが好みます。 最初の入力値は分子で、2番目の入力値は分母です。 最初の入力値は2番目の入力値よりも小さくなければなりません。 出力には、システム/言語のメモリ制限(RAM、MAX_INT、またはその他のコード/システム制約が存在する)を超える値が含まれる場合があります。これが発生した場合は、できるだけ高い値で結果を切り捨てて、何らかの形で(つまり...)に注意してください。 出力は、少なくとも2,147,483,647(2 31 -1、符号付き32ビットint)までの分母値を処理できる必要があります。 より高い値(longなど)は完全に許容されます。 出力は、見つかった単位分数の最小セットの分母のすべての値(または分数自体、つまり1/2)のリストです。 出力は、分母の値に応じて昇順(分数の値で降順)に並べられます。 出力は任意の方法で区切ることができますが、ある値と次の値を区別するために、間に文字が必要です。 これはコードゴルフであるため、最短のソリューションが優先されます。 例: 入力1: 43, 48 出力1: 2, 3, 16 入力2: 8/11 出力2: 1/2 1/6 1/22 1/66 入力3: 5 121 出力3: 33 121 363

2
有理数のビットごとのXOR
前書き 0から1までのすべての有理数は、最終的に周期的なビットシーケンスとして表すことができます。たとえば、11/40のバイナリ表現は 0.010 0011 0011 0011 ... ここで、0011部品は無期限に繰り返されます。この表現を見つける1つの方法は次のとおりです。r = 11/40で開始し、それを繰り返し2倍して小数部分を取得し、1を超えたときに記録します。rの値が繰り返されると、ループに入ったことを確認できます。 1. r = 11/40 2. 2*r = 11/20 < 1 -> next bit is 0, r = 11/20 3. 2*r = 11/10 >= 1 -> next bit is 1, r = 2*r - 1 = 1/10 4. 2*r = 1/5 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.