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

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

3
素数の階乗の比として有理数を書く
注:このチャレンジはサンドボックスに投稿されています。 前書き この課題は、学部の数学コンテストの問題である2009 Putnam B1に触発されました。問題は次のとおりです。 すべての正の有理数は、素数の階乗の積として書けることを示します(必ずしも別個ではない)。例えば、 チャレンジ あなたの挑戦は、入力として正の有理数の分子と分母(または単に有理数自体)を表す、比較的素数の正の整数のペアを取り、素数の2つのリスト(または配列など)を出力することです入力された有理数は、最初のリストの素数の階乗の積と2番目のリストの素数の階乗の積の比に等しくなります。 ノート 最初のリストと2番目のリストの両方に含まれる素数がない場合があります。ただし、素数は、どちらのリストでも何度でも表示できます。 入力はそれぞれ(厳密には)1〜65535の間であると想定できます。ただし、出力する必要がある数値の階乗がこの範囲にあるとは限りません。 入力と出力の例 有効な入力と出力の例を次に示します。 input=>output 10,9 => [2,5],[3,3,3] 2,1 => [2],[] 3,1 => [3],[2] 1,5 => [2,3,2],[5] (elements of a list may be in any order) 3,2 => [3],[2,2] 6,1 => [3],[] 入力(2,2)、(0,3)、(3,0)、(3,6)および(1,65536)は不正な入力です(つまり、プログラムは特定の方法で動作する必要はありません) )。不正な出力の例を次に示します。 1,2 => [2],[2,2] (2 is in both …

5
ハードオブジェクトまたはソフトオブジェクトはもっとありますか
What-Ifブックのオープニングに触発されました。 入力は、文字列、文字列のリストなどとしてのスペースの長方形で、#内部にで作成されたオブジェクトがあります。 ######## # # ######## ### #### ### #### ### オブジェクトは常に交差せず、触れない長方形になります。ソフトオブジェクトは#、中央がで埋められておらず、境界のみであるオブジェクトとして定義されます。ハードオブジェクトは、塗りつぶされたオブジェクトです。幅または高さのあるオブジェクト<=2はハードと見なされます。すべてのオブジェクトはハードまたはソフトです。 入力にさらに硬いオブジェクトがある"Hard"場合、output 、より柔らかい場合、output "Soft"、それらが等しい場合、output "Equal"。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース これらのケースは完全な入力ではなく、各オブジェクトを特徴付けるべきものです。実際の入力は、質問の上部にあるascii-artのようになります。 ハード # #### ## ## ########## ########## ########## 柔らかい ### # # ### ################### # # # # # # ################### #### # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

30
不適切な分数に対する混合数
不適切な分数に対する混合数 この課題では、混合数値を不適切な分数に変換します。 不適切な分数はより少ない数を使用するため、コードはできるだけ短くする必要があります。 例 4 1/2 9/2 12 2/4 50/4 0 0/2 0/2 11 23/44 507/44 仕様 入力の分母が0になることはないと想定できます。入力は常にx y/z、x、y、zが任意の非負整数である形式になります。出力を単純化する必要はありません。 これはコードゴルフなので、バイト単位の最短コードが優先されます。

13
シェルピンスキー層
はじめに、そのような下に線を追加することにより、パターンのようなシェルピンスキーの三角形/\を作成することができます... ゆるい枝/または\2つの枝に再び分割されます/\。 ブランチの衝突は、その\/下に何も(スペースはありません)死んでしまいます。 これらの規則を繰り返すと、 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHartによるインスピレーション) 正の整数Nを取り込んで、このパターンの最初のN行をstdoutに出力するプログラムまたは関数を作成します。必要以上に先行または後続のスペースはありません。 たとえば、入力が1出力の場合、 /\ 入力が2出力の場合 /\ /\/\ 入力が8出力の場合 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等々。 最小バイトのコードが優先されます。

12
有理数のLCM
数字の組の最小公倍数(LCM)は、A最小の整数であるbそのようなb/a全ての整数の整数でありaにおけるA。この定義は有理数に拡張できます! 仕事 最小の正の検索合理的な bようb/aである整数のすべてのための有理数 aの入力では。 ルール 標準的な抜け穴は禁止されています。 入力では分子と分母を別々に使用できますが、double、floatなどは使用できません。 入力が完全に削減されない場合があります。 整数入力を分母の有理数としてとることができます1。 有理数をLCM / GCDビルトインに送信する送信は許可されますが、競合しません。 テストケース In: 3 Out: 3 In: 1/17 Out: 1/17 In: 1/2, 3/4 Out: 3/2 In: 1/3, 2/8 Out: 1 In: 1/4, 3 Out: 3 In: 2/5, 3 Out: 6 In: 1/2, 3/4, 5/6, 7/8 Out: 105/2 これはcode-golfであるため、最小限のバイトを使用した送信が勝ちです!

28
逆モジュラスを計算する
タスク: の値を出力します。xここでa mod x = b、2つの値がありますa,b。 仮定 aそして、b常に正の整数になります 常に解決策があるとは限りません x 複数のソリューションが存在する場合は、少なくとも1つを出力します。 解決策がない場合は、何も出力しないか、解決策が存在しないという兆候を出力します。 組み込みが許可されています(他の数学的アプローチほど面白くありません) 出力は常に整数です 例 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

6
最初の定期的な数字を削除する
有理数が10進数で書かれているときはいつでも、結果は終了するか(最終的に)周期的であることを知っています。たとえば、41/42が10進数で記述されている場合、結果は次のようになります。 0.9 761904 761904 761904 761904 761904 761904 761904 ... 最初の数字のシーケンスと0.9それに続くシーケンスが761904繰り返し繰り返されます。(これの便利な表記法は0.9(761904)、括弧が繰り返し数字のブロックを囲む場所です。) この課題の目標は、正の有理数を取得し、繰り返しシーケンスの一部である最初の数字を削除して、結果の有理数を返すことです。たとえば、これを41/42にすると、次のようになります 0.9 61904 761904 761904 761904 761904 761904 761904 ... または0.9(619047)略して101/105です。 1/4 =のように、有理数の末尾に10進数の展開がある場合0.25、何も起こりません。あなたはどちらかと1/4の考えることができる0.250000000...かのように0.249999999...番号が変わらず、繰り返し部分の葉の最初の数字を削除するが、いずれの場合も。 詳細 入力は、分子と分母を表す正の整数のペアとして、または(選択する言語で許可され、必要な場合)何らかの種類の有理数オブジェクトとしての正の有理数です。 出力も有理数であり、どちらの形式でもあります。結果が整数の場合、有理数の代わりに整数を返します。 入力として数値のペアを使用する場合、それらは比較的素数であると想定できます。出力として数値のペアを生成する場合、それらを比較的素数にする必要があります。 繰り返しブロックを開始する最初の数字を見つけることに注意してください。たとえば、41/42と書くこともできます0.97(619047)が、これは2041/2100(10進数展開0.97(190476))を有効な答えにしません。 あなたは、あなたが得る入力で、第1の周期の数字であると仮定してもよいの後になって、小数点120/11= 10.909090909...(その最初の定期的な数字が考えられる:無効な入力0で10)。あなたはそのような入力であなたが好きなことをするかもしれません。 これがコードゴルフです。最短のソリューションが勝ちです。 テストケース 41/42 => 101/105 101/105 => 193/210 193/210 => 104/105 104/105 => 19/21 1/3 => 1/3 1/4 => …

7
分数を繰り返し小数に変換する
この挑戦はほぼ正反対であり、私はそれがわずかに簡単になると思う。 あなたの仕事は、2つの整数を形式a/b(有理数の形成)で取得し、その数値を10進数で正確に出力することです。 たとえば、入力1/3すると、出力されます。 0.33333333333333333 また、オプションの先頭に0を付けて、時間の終わりまで3を印刷し続けます(言語で同じ行への印刷が許可されていない場合にのみ、 1行に1文字を印刷することもできます)。 の動作はx/0未定義です。繰り返していないように見える数字(たとえば5/4)については、実際に繰り返します。次の2つの形式のいずれかが受け入れられ5/4ます。 1.25000000000000000 1.24999999999999999 (整数で1.9999999も同じ、または2.000000) 画分は、最も単純な形態であってもなくてもよく、aまたはb負(注かもしれ-a/b = -(a/b)、-a/-b = a/b、a/-b = -a/b、および-.6249999無効であるが、-0.6249999許容されていますが、まだ使用することができます。

7
満足のいく丸め
満足のいく丸め あなたは理科の授業にいるときを知っており、2 sigのイチジクに丸めることを求めましたが、あなたの答えは5.2501...?に丸める必要がありますが5.3、それはとても不満です!に四捨五入する5.3ことにより、0.05(四捨五入する場所の値)に比べて0.05だけ大きくなります!だから私は満足のいく方法でラウンドを助けてください。 満足のいく方法で丸めるには、出くわす最初の桁で丸める必要があります。これは、誤差が比較的小さく、丸め時に可能な最大誤差の半分未満です。基本的に、0、1、8、または9に遭遇するたびに丸める必要があります。それが起こらない場合は、入力をそのまま返します。先頭のゼロまたは1を丸めないでください-それは単に満足感を感じません。 入力 非負の10進数を表す文字列または浮動小数点値。 出力 文字列または浮動小数点形式のいずれかで、十分に丸められた同じ10進数。 例 Input -> Output 0 -> 0 0.5 -> 0.5 0.19 -> 0 0.8 -> 1 5.64511 -> 5.645 18.913 -> 20 88.913 -> 100 36.38299 -> 36.4 621 -> 620 803.22 -> 1000 547.4726 -> 547.4726 これはコードゴルフの挑戦なので、最短のコードが勝ちます!

8
パーセンテージを「単純な」比率に変換する
政治的なウェブサイトを運営しており、選挙の勝ち負けの可能性が割合( "71%"で表される場合よりも比率( "5 in 7")で表される場合、人々はより直感的に理解できると判断しました)。 ただし、「58 in 82」のような混乱を招く比率を表示したくない場合は、たとえそれらの比率がそれほど正確でなくても、より簡単に理解できるようにします。 したがって、0.1%から99.9%の間のパーセンテージを指定すると、次の規則を使用して、最も近い「わかりやすい」比率「x in y」を返します。 ほとんどの値(以下の例外を参照)は、10以下から最も近い比率を返します。55%は「11 in 20」ではなく「5 in 9」を返す必要があります。 比率は最低の条件に減らす必要があります。65%は、「4 in 6」ではなく「2 in 3」を返す必要があります。 10%未満の値は、nが(10,12,15,20,30,40,50,60,70,80,90,100)のいずれかであるフォーム " n in 1 "の最も近い比率を返す必要があります。たとえば、6%は「1 in 15」を返します。 90%を超える値は、フォーム " n-1 in n "の最も近い比率を返す必要があります。nは(10,12,15,20,30,40,50,60,70,80,90,100)のいずれかです。たとえば、98.7%は「79 in 80」を返します。 1%未満の値は、「<1 in 100」を返す必要があります 99%を超える値は、「> 99 in 100」を返す必要があります または、別の方法で考えると、プログラムは次の可能な出力から最も近い比率を返す必要があります(便宜上、おおよその値を含めました)。 <1 in 100 1 in …

1
弾丸が衝突するとき
この挑戦は、私が少し前にいくつかの本で読んだ謎に基づいています。さまざまな速度で1秒間に1回銃から発射される弾丸が永久に直線で移動することです。ある弾丸が別の弾丸に当たると、両方が完全に破壊されます。(「弾丸」のすべてのインスタンスを「ミサイル」に置き換えてください。) タスク 発射された順番で弾丸の速度のリストが与えられたら、すべての弾丸が破壊されるかどうかを決定します。 ルール 入力は、任意の区切り文字で区切られ、前後に1つのオプション文字がある、負でない整数のリストです。これらは、有効な入力です:1 2 3 4 5 6と[1,2,3,4,5,6]。プログラマーが選択します。 少なくとも1つの弾丸が永遠に生き残る場合は真実の値を出力し、そうでない場合は偽の値を出力します。 弾丸の速度は1秒あたりの単位で与えられます。 弾丸は同時に連続的に移動します。 箇条書きは、わずかなオフセットで衝突する場合があります。 原点からの整数または小数のオフセットにかかわらず、正確に同じ位置に同時に到達する複数の弾丸は、すべて互いに衝突します。 例 これらの図でGは、銃、>弾丸を表し、*弾丸が衝突して爆発するときです。 真実の 入力: 0 0123456789 Time 0 G> 1 G> 2 G> ... 出力: 1 入力: 0 0 0 0123456789 Time 0 G> 1 G* 2 G> 3 G> 4 G> ... 出力: 1 …

2
拒否する良い時期
セットアップ あなたが与えられていると仮定し、N 1と、ヒューズ≤ N ≤5、長いメートルでそれぞれが、そしてここで、各ヒューズの関連する燃焼速度有するN個当たりのメートルDの時間。 ヒューズは、片端または両端で点灯し、その後片端または両端で消灯、再点灯、再消灯などを、ヒューズが完全に消費されるまで何度でも行うことができます。ヒューズを瞬時に点灯および消灯することができ、ヒューズが完全に消費された(燃えた)瞬間を正確に観察できます。 ヒューズは切断できず、端以外は点灯できません。 このような設定により、2つのヒューズ点灯/消費イベント間の時間を測定することにより、無限に正確なタイミングシステムが可能になります。たとえば、1時間あたり1メートルの燃焼速度を持つ2つのヒューズがある場合、次の方法で正確に45分(3/4時間)を測定できます。 同時に:最初のヒューズを両端で点灯し、2番目のヒューズを一端で点灯し、時間間隔の開始をマークします 最初のヒューズが消費された瞬間(30分後)に2番目のヒューズの2番目の端を点灯 2番目のヒューズが消費された瞬間(15分後)に時間間隔の終わりをマークする チャレンジ 時間数の小数t、およびn個のヒューズの正確な燃焼速度を表すn個の小数のセットが与えられた場合、ヒューズの系統的燃焼によりt時間を正確に測定できる場合、真の値を出力/返すプログラムまたは関数を記述します。そうでなければ偽の値。 プログラムへの入力は次のいずれかです。 次の形式のコマンドライン引数 TN/TD N1/D1 N2/D2 N3/D3 ... TN/TD N1/D1 N2/D2 N3/D3 ...読み取りstdinまたは同等の形式の文字列 TN/TD N1/D1 N2/D2 N3/D3 ...関数の引数として渡されたフォームの文字列 ["TN/TD", "N1/D1", "N2/D2", "N3/D3", ...]関数の引数として渡される文字列の配列 すべての場合、t = TN/ TD、ここでTN、TD∈[1,10000]。 同様に、すべての場合において:ヒューズ用の燃焼速度は、iが = NをI / D I = N<i>/ D<i>、ここでN<i>、D<i>∈[1,10]∀ I。 常に1〜5個のヒューズ(包括的)があり、すべての入力が有効で範囲内にあると仮定することができます。また、すべての入力分数が最も低い用語で与えられていると仮定することもできます。 …

25
混合分数の平等
小学校では、子どもたちは分子が分母より小さく、したがって分数の値が1より小さい適切な分数について学びます。後で、分数の値が1より大きい分数と、これらの分数を表す2つの異なる方法:混合分数と不適切な分数について教えます。 混合分数が与えられた場合、整数値と分子が連結された不適切な分数に等しいかどうかを判断します。たとえば、入力の1 3/4場合、不適切な分数は13/4です。 テストケース 1 3/4 -> falsey 1 3/10 -> truthy 6 6/7 -> falsey 55 55/100 -> truthy 4 9/100 -> falsey 40 9/100 -> falsey 7 49/1000 -> falsey 9 1/2 -> falsey 999 999/1000 -> truthy 1 21/200 -> falsey 1 21/101 -> falsey 入力については、整数部分と小数部分を別々の入力として使用できますが、小数を2つの部分として入力として使用することはできず、小数として使用することもできません。使用する必要がない場合は、整数部分を削除することができます(入力として使用しないでください)。

16
調和級数の正確な部分和
チャレンジ 正の整数を指定するNと、最初のN逆数の合計を正確な分数として出力します。これは、分子と分母を表す一貫した順序の整数のペアとして表されます。 ルール 出力は正確でなければなりません。 出力は、分子と分母を表す一貫した順序の整数のペアである必要があります。 非整数の数値型(組み込みまたはライブラリ)の使用は禁止されています。 明確化/例外:使用、計算、および返される値がすべて整数である場合にのみ、非整数の数値型は問題ありません(つまり、言語はデフォルトで有理数を使用しますが、答えには整数演算のみを使用します) 出力はできるだけ減らす必要があります。(3/2大丈夫です、そうで6/4はありません) 標準的な抜け穴は禁止されています。 提出は、少なくとも20までの入力、またはこのメタのいずれか高い方で機能する必要があります。 テストケース 1: 1/1 2: 3/2 (1/1 + 1/2) 3: 11/6 (1/1 + 1/2 + 1/3) 4: 25/12 etc. 5: 137/60 6: 49/20 20: 55835135/15519504 56: 252476961434436524654789/54749786241679275146400 226: 31741146384418617995319820836410246588253008380307063166243468230254437801429301078323028997161/5290225078451893176693594241665890914638817631063334447389979640757204083936351078274058192000 テストケースの生成(Python 3) import fractions def f(x): return sum(fractions.Fraction(1,i) for i in range(1,x+1)) …

3
ゴルフ小数
あなたの目標は、入力分数に対して最短の一意の10進数シーケンスを出力するコードを記述することです。同じ分母を持つ2つの分数が同じ出力を持つことはありませんが、異なる分母を持つ分数が同じ表現を持つことは可能です。 入力として2つの整数を取ります。1つ目は分子、2つ目は分母です。 例えば: n d output ----- ------ 0 13: 0.00 1 13: 0.07 2 13: 0.1 3 13: 0.2 4 13: 0.30 5 13: 0.38 等 3/13で始まる13の分母を持つ唯一の分数である0.2ため、それ以上の数字は必要ありません。4/13そして、5/13で始まる、両方の0.3別の数字を区別するために必要とされるように、。 あなたの出力よりも-1より大きい数字と1未満のゼロの有無にかかわらずどちらか小数点の前に、長い出力が一貫している限り、すなわちかもしれない0.5と.5同じ数であり、両方とも有効です。他の先行ゼロは許可されません。出力を別の値と区別する必要がある場合は、後続ゼロを表示する必要があります。 数字をゼロから四捨五入することはできません。それらは切り捨てられなければなりません。先頭または末尾にスペースがあってはなりません。オプションで、単一の末尾の改行がある場合があります。 その他のテスト値: n d output ---------- ------ 0 1: 0 (this 0 may not be removed because there's no decimal point) …

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