タグ付けされた質問 「binary」

Binaryは、基数2の数体系です。このタグは、ベース2が関係する課題に使用します。

2
浮動小数点なしの浮動小数点加算!
あなたの仕事は、任意の言語で、小数または浮動小数点の数学を使用せずに 2つの浮動小数点数を加算するプログラムを記述することです。整数演算が許可されています。 フォーマット 数値の形式は、IEEE 754 32ビットfloatのバイナリ値を表す1と0を含む文字列です。たとえば、数値2.54は文字列 "01000000001000101000111101011100"で表されます。 ゴール プログラムは、上記の形式で2つの数値を入力し、それらを加算して、同じ形式で結果を出力する必要があります。どの言語でも最も短い答えが勝ちます! ルール 浮動小数点、10進数、または整数以外のあらゆる種類の数学関数は絶対に許可されていません。 入力はクリーン(つまり、1と0のみを含む)であると想定できます。 入力は数値であり、Inf、-Inf、NaNまたは非正規ではないと想定できます。ただし、結果が最大値より大きいか最小値より小さい場合は、それぞれInfと-Infを返す必要があります。非正規(非正規)の結果は0にフラッシュされることがあります。 丸めを適切に処理する必要はありません。結果が少しずれていても心配しないでください。 テスト プログラムをテストするには、このツールを使用して、10進数と浮動小数点の2進数を変換できます。 1000 + 0.5 = 1000.5 01000100011110100000000000000000 + 00111111000000000000000000000000 = 01000100011110100010000000000000 float.MaxValue + float.MaxValue =無限大 01111111011111111111111111111111 + 01111111011111111111111111111111 = 01111111100000000000000000000000 321.123 + -123.321 = 197.802 01000011101000001000111110111110 + 11000010111101101010010001011010= 01000011010001011100110101010000 幸運を!

3
圧縮して印象を与える
両方に触発挑戦「ユニークで安いです」によって@Laikoniスコアは挑戦そのものだけでなく、に基づいており、JavaScriptの(ES6)の回答の@ETHproductionsのための「回文圧縮」の挑戦彼はかなりクールを使用して、回文フラグ、大文字/小文字の表示、および文字の圧縮方法。 チャレンジ: 2つのプログラム/関数を作成します。圧縮プログラム/関数と解凍プログラム/関数です。 プログラム/関数の圧縮: 独自のソースコードで使用された文字(ソースコードの圧縮と解凍の両方)を可能な入力としてのみ与え、任意の種類のビット圧縮方法を使用して、この入力のビット圧縮の結果0のsと1sを出力します。 。 出力されるビット(0sおよび1s)の量は可能な限り短くする必要があり、この量が回答のスコアになります。 アイデアは、独自のソースコードで使用されるさまざまな種類の文字、プログラム/関数のサイズ、および使用したビット圧縮のタイプの間でバランスをとることです。または、このコメントで@RobertFraserを引用するには: これはエンジニアリングの基本の優れた例です。問題の説明を取り、それを解決するためのさまざまな方法について考え、要件間のトレードオフ(つまり、さまざまなスタイルに割り当てるビット数)を作成するなど チャレンジルール: 圧縮プログラムと解凍プログラム/関数は、同じプログラミング言語である必要があります。 入力はスコアになるため、圧縮と解凍の両方のプログラム/関数と、両方のプログラム/関数を組み合わせた(連結した)圧縮プログラムの出力の0sと1sの量を提供する必要があります。 圧縮は、明らかに、圧縮プログラムと解凍プログラム/関数の両方のソースコードで使用されているすべての文字に対して、任意の順序または量で機能する必要があります。(ソースコードにない文字については、未定義の動作をする可能性があります。) 入力タイプは必ずしも文字列である必要はありません。文字のリスト/配列/ストリームにすることもでき、プログラムの引数やSTDINなどにすることもできます。呼び出し。 同じことが出力にも当てはまります。関数から返すか、STDOUTに出力できます。単一の文字列、整数配列などにすることができます。 あなたの圧縮プログラムを出力しなければならない、少なくとも1 0か1(そう空のcat圧縮と解凍プログラムの両方のためのプログラムはできません)。 ソースコードには、0sと1sがすでに含まれているだけでなく、no-ops が含まれていない場合があります(デフォルトで独自のソースコードを出力するプログラミング言語では、圧縮プログラムと解凍プログラムの両方を単一0またはにでき1、no-ops部分は未使用のコメントでこの動作を防止するには、ソースコードとして0sと1s のみを使用する、申し訳ありませんがバイナリベースのプログラミング言語)。 プログラム/関数で使用される0以上の文字プールの入力をサポートする必要がありますが、空の入力をサポートする必要はありません。したがって、すべての入力が少なくとも1文字であると想定できます。 可能な入力は、圧縮サイズと解凍サイズの合計よりも大きくなる可能性があります。 何らかの理由で圧縮方法が順序に依存し、入力がのDecompressionProgramCompressionProgram代わりに出力が短い場合CompressionProgramDecompressionProgram、スコアのプログラム/関数のコンカッティングのいずれかの順序を選択できます。 例: 圧縮プログラムがABCであり、解凍プログラムがであるとしましょう123aBc。0個以上のcharacter-poolを含む入力の場合、123ABCabこれらの文字を0sおよび1s に正しく圧縮し、これら0のsおよび1sを正しい文字に解凍できる必要があります。これら2つのプログラムの有効な入力例は次のとおりABC123aBcです。A; 1Ca; 22222b1121221b; 等 一般的なルール: 回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーター、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストを含むリンクを追加してください。 また、必要に応じて説明を追加してください。 答えの例: Java 8、スコア1440ビット、180(87 + 93)バイト ここでは、Java 8の非常に悪い実装で、各文字は単に8ビットのバイナリ文字列として出力されます。 圧縮機能: として提供される入力java.util.stream.IntStream。 s->s.forEach(c->System.out.print("".format("%8s",Long.toString(c,2)).replace(' ','0'))) オンラインでお試しください。 減圧機能: として提供される入力String。 …

11
多次元のバイナリシーケンスの順序付きリスト
正の整数を指定すると、次の正確な順序でソートされた長さのバイナリシーケンスをn出力します。2^nn テストケース: 0: 0 or 1 (defining this is a matter of debate) 1: 0 1 2: 00 01 10 11 3: 000 001 010 100 011 101 110 111 4: 0000 0001 0010 0100 1000 0011 0101 1001 0110 1010 1100 0111 1011 1101 1110 1111 等 さらに、組み合わせのパターンはパスカルの三角形に関連しています。 0: …

4
範囲内の最短の2進数
二つの与えられた任意の正確な進数0≤ X < Y ≤1、(桁)最短計算バイナリ数Bように、X ≤ B < yと。 2進小数点の後のbの2進数を、配列またはゼロと1の文字列として出力します。空の配列は、末尾のゼロを削除することにより、0.0を意味することに注意してください。これはまた、どの範囲にも固有の正解があることを確認します。 2進数の小数に慣れていない場合は、10進数と同じように機能します。 Base 10 0.625 = 0.6 + 0.02 + 0.005 = 6 x 10^-1 + 2 x 10^-2 + 5 x 10^-3 Base 2 0.101 = 0.1 + 0.00 + 0.001 = 1 x 2^-1 + 0 x 2^-2 + …

3
折りたたみとつぶしのプロセスでのサイクルのカウント
でカオス理論、馬蹄マップは混乱が折りたたみと潰しの簡単なプロセスで発生方法の例です。それは次のようになります。架空の生地を取り出し、折りたたみ、最後に元のサイズに潰します。カオスは、n回の反復の後、生地の断片が最終的な配置にどのように到達するかというパターンで発生します。 今回のケースでは、単純なバイナリパターンが折りたたまれ、押しつぶされるときにどのように動作するかを見ていきます。以下は、8ビットの例(201またはのバイナリ表現11001001)の手順です。 同じ長さの2つの断片にビットをカットします(奇数のビットがある場合は、最初に「0」を追加します)。 1100 | 1001 前半を後半に折ります。折りたたみながら回転させると、前半の順序が逆になることに注意してください。 0011 1001 元の形にスカッシュします。スカッシュ中、上位ビットは元の位置の下のビットに左にシフトされます。 01001011 この例でこれを繰り返すと、4回の反復の後、元のビット文字列に戻っていることがわかります。 Start bits: 11001001 Iteration 1: 01001011 Iteration 2: 01001101 Iteration 3: 01011001 Iteration 4: 11001001 したがって、10進数の201の場合、サイクル数は4です。 チャレンジ 10進数を入力として受け取り、上記のバイナリスカッシュアンドフォールドプロセスで繰り返すのに必要なサイクル数を出力する完全なプログラムを記述します。 (10進数)入力はstdinから取得する必要があります(範囲:1からGoogolまたは10 ^ 100まで)。 (10進数)出力はstdoutに書き込む必要があります。 スコアは、コードのバイト数です。 回答は[プログラミング言語]-[バイト単位のスコア]で始まる必要があります 標準の抜け穴は許可されていません。 例 7 --> 3 43 --> 5 178 --> 4 255 --> 1 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.